-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into truffle-head
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
Showing
93 changed files
with
1,364 additions
and
1,081 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Empty file.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Empty file.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,2 @@ | ||
fails:String#unpack with format 'A' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'A' returns an empty string if the input is empty | ||
fails:String#unpack with format 'A' returns empty strings for repeated formats if the input is empty | ||
fails:String#unpack with format 'A' returns an empty string and does not decode any bytes when the count modifier is zero | ||
fails:String#unpack with format 'A' implicitly has a count of one when no count is specified | ||
fails:String#unpack with format 'A' decodes the number of bytes specified by the count modifier | ||
fails:String#unpack with format 'A' decodes the number of bytes specified by the count modifier including whitespace bytes | ||
fails:String#unpack with format 'A' decodes past whitespace bytes when passed the '*' modifier | ||
fails:String#unpack with format 'A' decodes the number of bytes specified by the count modifier including NULL bytes | ||
fails:String#unpack with format 'A' decodes past NULL bytes when passed the '*' modifier | ||
fails:String#unpack with format 'A' removes trailing space and NULL bytes from the decoded string | ||
fails:String#unpack with format 'A' does not remove whitespace other than space | ||
fails:String#unpack with format 'a' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'a' returns an empty string if the input is empty | ||
fails:String#unpack with format 'a' returns empty strings for repeated formats if the input is empty | ||
fails:String#unpack with format 'a' returns an empty string and does not decode any bytes when the count modifier is zero | ||
fails:String#unpack with format 'a' implicitly has a count of one when no count is specified | ||
fails:String#unpack with format 'a' decodes the number of bytes specified by the count modifier | ||
fails:String#unpack with format 'a' decodes the number of bytes specified by the count modifier including whitespace bytes | ||
fails:String#unpack with format 'a' decodes past whitespace bytes when passed the '*' modifier | ||
fails:String#unpack with format 'a' decodes the number of bytes specified by the count modifier including NULL bytes | ||
fails:String#unpack with format 'a' decodes past NULL bytes when passed the '*' modifier | ||
fails:String#unpack with format 'a' does not remove trailing whitespace or NULL bytes from the decoded string |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1 @@ | ||
fails:String#unpack with format '@' calls #to_str to coerce the directives string | ||
fails:String#unpack with format '@' positions the read index one beyond the last readable byte in the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,2 @@ | ||
fails:String#unpack with format 'B' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'B' decodes one bit from each byte for each format character starting with the most significant bit | ||
fails:String#unpack with format 'B' decodes only the number of bits in the string when passed a count | ||
fails:String#unpack with format 'B' decodes multiple differing bit counts from a single string | ||
fails:String#unpack with format 'B' decodes a directive with a '*' modifier after a directive with a count modifier | ||
fails:String#unpack with format 'B' decodes a directive with a count modifier after a directive with a '*' modifier | ||
fails:String#unpack with format 'B' decodes the number of bits specified by the count modifier | ||
fails:String#unpack with format 'B' decodes all the bits when passed the '*' modifier | ||
fails:String#unpack with format 'B' adds an empty string for each element requested beyond the end of the String | ||
fails:String#unpack with format 'B' ignores NULL bytes between directives | ||
fails:String#unpack with format 'B' ignores spaces between directives | ||
fails:String#unpack with format 'b' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'b' decodes one bit from each byte for each format character starting with the least significant bit | ||
fails:String#unpack with format 'b' decodes only the number of bits in the string when passed a count | ||
fails:String#unpack with format 'b' decodes multiple differing bit counts from a single string | ||
fails:String#unpack with format 'b' decodes a directive with a '*' modifier after a directive with a count modifier | ||
fails:String#unpack with format 'b' decodes a directive with a count modifier after a directive with a '*' modifier | ||
fails:String#unpack with format 'b' decodes the number of bits specified by the count modifier | ||
fails:String#unpack with format 'b' decodes all the bits when passed the '*' modifier | ||
fails:String#unpack with format 'b' adds an empty string for each element requested beyond the end of the String | ||
fails:String#unpack with format 'b' ignores NULL bytes between directives | ||
fails:String#unpack with format 'b' ignores spaces between directives |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,2 @@ | ||
fails:String#unpack with format 'C' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'C' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'c' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'c' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,2 @@ | ||
fails:String#unpack with format 'D' ignores whitespace in the format string | ||
fails:String#unpack with format 'D' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'D' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'd' ignores whitespace in the format string | ||
fails:String#unpack with format 'd' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'd' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,2 @@ | ||
fails:String#unpack with format 'E' ignores whitespace in the format string | ||
fails:String#unpack with format 'E' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'E' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'e' ignores whitespace in the format string | ||
fails:String#unpack with format 'e' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'e' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,2 @@ | ||
fails:String#unpack with format 'F' ignores whitespace in the format string | ||
fails:String#unpack with format 'F' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'F' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'f' ignores whitespace in the format string | ||
fails:String#unpack with format 'f' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'f' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,2 @@ | ||
fails:String#unpack with format 'G' ignores whitespace in the format string | ||
fails:String#unpack with format 'G' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'G' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'g' ignores whitespace in the format string | ||
fails:String#unpack with format 'g' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'g' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,2 @@ | ||
fails:String#unpack with format 'H' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'H' decodes one nibble from each byte for each format character starting with the most significant bit | ||
fails:String#unpack with format 'H' decodes only the number of nibbles in the string when passed a count | ||
fails:String#unpack with format 'H' decodes multiple differing nibble counts from a single string | ||
fails:String#unpack with format 'H' decodes a directive with a '*' modifier after a directive with a count modifier | ||
fails:String#unpack with format 'H' decodes a directive with a count modifier after a directive with a '*' modifier | ||
fails:String#unpack with format 'H' decodes the number of nibbles specified by the count modifier | ||
fails:String#unpack with format 'H' decodes all the nibbles when passed the '*' modifier | ||
fails:String#unpack with format 'H' adds an empty string for each element requested beyond the end of the String | ||
fails:String#unpack with format 'H' ignores NULL bytes between directives | ||
fails:String#unpack with format 'H' ignores spaces between directives | ||
fails:String#unpack with format 'h' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'h' decodes one nibble from each byte for each format character starting with the least significant bit | ||
fails:String#unpack with format 'h' decodes only the number of nibbles in the string when passed a count | ||
fails:String#unpack with format 'h' decodes multiple differing nibble counts from a single string | ||
fails:String#unpack with format 'h' decodes a directive with a '*' modifier after a directive with a count modifier | ||
fails:String#unpack with format 'h' decodes a directive with a count modifier after a directive with a '*' modifier | ||
fails:String#unpack with format 'h' decodes the number of nibbles specified by the count modifier | ||
fails:String#unpack with format 'h' decodes all the nibbles when passed the '*' modifier | ||
fails:String#unpack with format 'h' adds an empty string for each element requested beyond the end of the String | ||
fails:String#unpack with format 'h' ignores NULL bytes between directives | ||
fails:String#unpack with format 'h' ignores spaces between directives |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,2 @@ | ||
fails:String#unpack with format 'I' with modifier '<' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '<' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '<' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '>' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '>' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '>' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '<' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '<' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '<' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '>' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '>' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '>' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' ignores whitespace in the format string | ||
fails:String#unpack with format 'I' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'I' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'I' with modifier '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' ignores whitespace in the format string | ||
fails:String#unpack with format 'i' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'i' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'i' with modifier '!' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,2 @@ | ||
fails:String#unpack with format 'M' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'M' decodes an empty string | ||
fails:String#unpack with format 'M' decodes the complete string ignoring newlines when given a single directive | ||
fails:String#unpack with format 'M' appends empty string to the array for directives exceeding the input size | ||
fails:String#unpack with format 'M' ignores the count or '*' modifier and decodes the entire string | ||
fails:String#unpack with format 'M' decodes the '=' character | ||
fails:String#unpack with format 'M' decodes an embedded space character | ||
fails:String#unpack with format 'M' decodes a space at the end of the pre-encoded string | ||
fails:String#unpack with format 'M' decodes an embedded tab character | ||
fails:String#unpack with format 'M' decodes a tab character at the end of the pre-encoded string | ||
fails:String#unpack with format 'M' decodes an embedded newline | ||
fails:String#unpack with format 'M' decodes pre-encoded byte values 33..60 | ||
fails:String#unpack with format 'M' decodes pre-encoded byte values 62..126 | ||
fails:String#unpack with format 'M' decodes pre-encoded byte values 0..31 except tab and newline | ||
fails:String#unpack with format 'M' decodes pre-encoded byte values 127..255 | ||
fails:String#unpack with format 'm' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'm' decodes an empty string | ||
fails:String#unpack with format 'm' decodes the complete string ignoring newlines when given a single directive | ||
fails:String#unpack with format 'm' ignores the count or '*' modifier and decodes the entire string | ||
fails:String#unpack with format 'm' appends empty string to the array for directives exceeding the input size | ||
fails:String#unpack with format 'm' decodes all pre-encoded ascii byte values | ||
fails:String#unpack with format 'm' produces binary strings |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,2 @@ | ||
fails:String#unpack with format 'N' ignores whitespace in the format string | ||
fails:String#unpack with format 'N' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'N' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'n' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'n' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,2 @@ | ||
fails:String#unpack with format 'Q' with modifier '<' decodes a long with most significant bit set as a positive number | ||
fails:String#unpack with format 'Q' with modifier '>' decodes a long with most significant bit set as a positive number | ||
fails:String#unpack with format 'Q' ignores whitespace in the format string | ||
fails:String#unpack with format 'Q' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'q' ignores whitespace in the format string | ||
fails:String#unpack with format 'q' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'Q' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'Q' decodes a long with most significant bit set as a positive number | ||
fails:String#unpack with format 'q' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,2 @@ | ||
fails:String#unpack with format 'S' with modifier '<' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '<' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '<' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '>' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '>' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '>' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '<' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '<' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '<' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '>' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '>' and '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '>' and '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'S' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'S' with modifier '!' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 's' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '_' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 's' with modifier '!' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,2 @@ | ||
fails:String#unpack with format 'U' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'u' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'u' decodes an empty string as an empty string | ||
fails:String#unpack with format 'u' decodes the complete string ignoring newlines when given a single directive | ||
fails:String#unpack with format 'u' appends empty string to the array for directives exceeding the input size | ||
fails:String#unpack with format 'u' ignores the count or '*' modifier and decodes the entire string | ||
fails:String#unpack with format 'u' decodes all ascii characters |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,2 @@ | ||
fails:String#unpack with format 'V' ignores whitespace in the format string | ||
fails:String#unpack with format 'V' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'V' adds nil for each element requested beyond the end of the String | ||
fails:String#unpack with format 'v' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'v' adds nil for each element requested beyond the end of the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1 @@ | ||
fails:String#unpack with directive 'w' calls #to_str to coerce the directives string | ||
fails:String#unpack with directive 'w' decodes a BER-compressed integer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,2 @@ | ||
fails:String#unpack with format 'X' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'x' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'x' moves the read index to the end of the string when passed the '*' modifier | ||
fails:String#unpack with format 'x' positions the read index one beyond the last readable byte in the String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1 @@ | ||
fails:String#unpack with format 'Z' calls #to_str to coerce the directives string | ||
fails:String#unpack with format 'Z' returns an empty string if the input is empty | ||
fails:String#unpack with format 'Z' returns empty strings for repeated formats if the input is empty | ||
fails:String#unpack with format 'Z' returns an empty string and does not decode any bytes when the count modifier is zero | ||
fails:String#unpack with format 'Z' implicitly has a count of one when no count is specified | ||
fails:String#unpack with format 'Z' decodes the number of bytes specified by the count modifier | ||
fails:String#unpack with format 'Z' decodes the number of bytes specified by the count modifier including whitespace bytes | ||
fails:String#unpack with format 'Z' decodes past whitespace bytes when passed the '*' modifier | ||
fails:String#unpack with format 'Z' stops decoding at NULL bytes when passed the '*' modifier | ||
fails:String#unpack with format 'Z' decodes the number of bytes specified by the count modifier and truncates the decoded string at the first NULL byte |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
exclude :test_closed_pipe, "needs investigation" | ||
exclude :test_open_pipe, "needs investigation" | ||
exclude :test_with_stdio, "needs investigation" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
233 changes: 233 additions & 0 deletions
233
truffle/src/main/java/org/jruby/truffle/nodes/core/array/AppendManyNode.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,233 @@ | ||
/* | ||
* Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved. This | ||
* code is released under a tri EPL/GPL/LGPL license. You can use it, | ||
* redistribute it and/or modify it under the terms of the: | ||
* | ||
* Eclipse Public License version 1.0 | ||
* GNU General Public License version 2 | ||
* GNU Lesser General Public License version 2.1 | ||
*/ | ||
package org.jruby.truffle.nodes.core.array; | ||
|
||
import com.oracle.truffle.api.dsl.*; | ||
import com.oracle.truffle.api.source.SourceSection; | ||
import com.oracle.truffle.api.utilities.ConditionProfile; | ||
import org.jruby.truffle.nodes.RubyNode; | ||
import org.jruby.truffle.runtime.RubyContext; | ||
import org.jruby.truffle.runtime.array.ArrayMirror; | ||
import org.jruby.truffle.runtime.array.ArrayUtils; | ||
import org.jruby.truffle.runtime.core.RubyArray; | ||
|
||
import java.util.Arrays; | ||
|
||
@NodeChildren({ | ||
@NodeChild("array"), | ||
@NodeChild("otherSize"), | ||
@NodeChild("other"), | ||
}) | ||
@ImportStatic(ArrayGuards.class) | ||
public abstract class AppendManyNode extends RubyNode { | ||
|
||
public AppendManyNode(RubyContext context, SourceSection sourceSection) { | ||
super(context, sourceSection); | ||
} | ||
|
||
public abstract RubyArray executeAppendMany(RubyArray array, int otherSize, Object other); | ||
|
||
// Append into an empty array | ||
|
||
// TODO CS 12-May-15 differentiate between null and empty but possibly having enough space | ||
|
||
@Specialization(guards = "isEmpty(array)") | ||
public RubyArray appendManyEmpty(RubyArray array, int otherSize, int[] other) { | ||
array.setStore(Arrays.copyOf(other, otherSize), otherSize); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isEmpty(array)") | ||
public RubyArray appendManyEmpty(RubyArray array, int otherSize, long[] other) { | ||
array.setStore(Arrays.copyOf(other, otherSize), otherSize); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isEmpty(array)") | ||
public RubyArray appendManyEmpty(RubyArray array, int otherSize, double[] other) { | ||
array.setStore(Arrays.copyOf(other, otherSize), otherSize); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isEmpty(array)") | ||
public RubyArray appendManyEmpty(RubyArray array, int otherSize, Object[] other) { | ||
array.setStore(Arrays.copyOf(other, otherSize), otherSize); | ||
return array; | ||
} | ||
|
||
// Append of the correct type | ||
|
||
@Specialization(guards = "isIntegerFixnum(array)") | ||
public RubyArray appendManySameType(RubyArray array, int otherSize, int[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManySameTypeGeneric(array, ArrayMirror.reflect((int[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isLongFixnum(array)") | ||
public RubyArray appendManySameType(RubyArray array, int otherSize, long[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManySameTypeGeneric(array, ArrayMirror.reflect((long[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isFloat(array)") | ||
public RubyArray appendManySameType(RubyArray array, int otherSize, double[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManySameTypeGeneric(array, ArrayMirror.reflect((double[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isObject(array)") | ||
public RubyArray appendManySameType(RubyArray array, int otherSize, Object[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManySameTypeGeneric(array, ArrayMirror.reflect((Object[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
public void appendManySameTypeGeneric(RubyArray array, ArrayMirror storeMirror, | ||
int otherSize, ArrayMirror otherStoreMirror, | ||
ConditionProfile extendProfile) { | ||
final int oldSize = array.getSize(); | ||
final int newSize = oldSize + otherSize; | ||
|
||
final ArrayMirror newStoreMirror; | ||
|
||
if (extendProfile.profile(newSize > storeMirror.getLength())) { | ||
newStoreMirror = storeMirror.copyArrayAndMirror(ArrayUtils.capacity(storeMirror.getLength(), newSize)); | ||
} else { | ||
newStoreMirror = storeMirror; | ||
} | ||
|
||
otherStoreMirror.copyTo(newStoreMirror, 0, oldSize, otherSize); | ||
array.setStore(newStoreMirror.getArray(), newSize); | ||
} | ||
|
||
// Append something else into an Object[] | ||
|
||
@Specialization(guards = "isObject(array)") | ||
public RubyArray appendManyBoxIntoObject(RubyArray array, int otherSize, int[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManyBoxIntoObjectGeneric(array, otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isObject(array)") | ||
public RubyArray appendManyBoxIntoObject(RubyArray array, int otherSize, long[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManyBoxIntoObjectGeneric(array, otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isObject(array)") | ||
public RubyArray appendManyBoxIntoObject(RubyArray array, int otherSize, double[] other, | ||
@Cached("createBinaryProfile()") ConditionProfile extendProfile) { | ||
appendManyBoxIntoObjectGeneric(array, otherSize, ArrayMirror.reflect(other), extendProfile); | ||
return array; | ||
} | ||
|
||
public void appendManyBoxIntoObjectGeneric(RubyArray array, int otherSize, ArrayMirror otherStoreMirror, | ||
ConditionProfile extendProfile) { | ||
final int oldSize = array.getSize(); | ||
final int newSize = oldSize + otherSize; | ||
|
||
final Object[] oldStore = (Object[]) array.getStore(); | ||
final Object[] newStore; | ||
|
||
if (extendProfile.profile(newSize > oldStore.length)) { | ||
newStore = ArrayUtils.copyOf(oldStore, ArrayUtils.capacity(oldStore.length, newSize)); | ||
} else { | ||
newStore = oldStore; | ||
} | ||
|
||
otherStoreMirror.copyTo(newStore, 0, oldSize, otherSize); | ||
array.setStore(newStore, newSize); | ||
} | ||
|
||
// Append forcing a generalization from int[] to long[] | ||
|
||
@Specialization(guards = "isIntegerFixnum(array)") | ||
public RubyArray appendManyLongIntoInteger(RubyArray array, int otherSize, long[] other) { | ||
final int oldSize = array.getSize(); | ||
final int newSize = oldSize + otherSize; | ||
|
||
final int[] oldStore = (int[]) array.getStore(); | ||
long[] newStore = ArrayUtils.longCopyOf(oldStore, ArrayUtils.capacity(oldStore.length, newSize)); | ||
|
||
System.arraycopy(other, 0, newStore, oldSize, otherSize); | ||
|
||
array.setStore(newStore, newSize); | ||
return array; | ||
} | ||
|
||
// Append forcing a generalization to Object[] | ||
|
||
@Specialization(guards = "isIntegerFixnum(array)") | ||
public RubyArray appendManyGeneralizeIntegerDouble(RubyArray array, int otherSize, double[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((int[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isIntegerFixnum(array)") | ||
public RubyArray appendManyGeneralizeIntegerDouble(RubyArray array, int otherSize, Object[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((int[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isLongFixnum(array)") | ||
public RubyArray appendManyGeneralizeLongDouble(RubyArray array, int otherSize, double[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((long[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isLongFixnum(array)") | ||
public RubyArray appendManyGeneralizeLongDouble(RubyArray array, int otherSize, Object[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((long[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isFloat(array)") | ||
public RubyArray appendManyGeneralizeDoubleInteger(RubyArray array, int otherSize, int[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((double[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isFloat(array)") | ||
public RubyArray appendManyGeneralizeDoubleLong(RubyArray array, int otherSize, long[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((double[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
@Specialization(guards = "isFloat(array)") | ||
public RubyArray appendManyGeneralizeDoubleObject(RubyArray array, int otherSize, Object[] other) { | ||
appendManyGeneralizeGeneric(array, ArrayMirror.reflect((double[]) array.getStore()), | ||
otherSize, ArrayMirror.reflect(other)); | ||
return array; | ||
} | ||
|
||
public void appendManyGeneralizeGeneric(RubyArray array, ArrayMirror storeMirror, int otherSize, ArrayMirror otherStoreMirror) { | ||
final int oldSize = array.getSize(); | ||
final int newSize = oldSize + otherSize; | ||
Object[] newStore = storeMirror.getBoxedCopy(ArrayUtils.capacity(storeMirror.getLength(), newSize)); | ||
otherStoreMirror.copyTo(newStore, 0, oldSize, otherSize); | ||
array.setStore(newStore, newSize); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 0 additions & 38 deletions
38
truffle/src/main/java/org/jruby/truffle/nodes/core/array/ArrayAllocationSite.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.