Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved the description of the issue templates #554

Merged
merged 1 commit into from
Jul 8, 2020

Conversation

Razican
Copy link
Member

@Razican Razican commented Jul 8, 2020

This PR changes the description of the feature request and custom issue templates.

It should avoid issues like #552, where a new ECMAScript feature is requested, but we have no links to the spec or no description of the feature, with no code example that would be affected.

@Razican Razican added the enhancement New feature or request label Jul 8, 2020
@Razican Razican added this to the v0.10.0 milestone Jul 8, 2020
@codecov
Copy link

codecov bot commented Jul 8, 2020

Codecov Report

Merging #554 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #554   +/-   ##
=======================================
  Coverage   68.19%   68.19%           
=======================================
  Files         172      172           
  Lines       10573    10573           
=======================================
  Hits         7210     7210           
  Misses       3363     3363           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a933ae8...cf169dd. Read the comment docs.

@github-actions
Copy link

github-actions bot commented Jul 8, 2020

Benchmark for 5dc8ea2

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 355.4±0.24ns 367.4±0.24ns -3.27%
Array access (Execution) 11.6±0.02µs 11.7±0.02µs -0.85%
Array creation (Execution) 3.2±0.00ms 3.2±0.00ms 0.00%
Array pop (Execution) 1207.8±3.49µs 1208.4±3.35µs -0.05%
Boolean Object Access (Execution) 4.4±0.00µs 4.5±0.01µs -2.22%
Create Realm 127.3±0.15µs 126.3±1.09µs +0.79%
Dynamic Object Property Access (Execution) 6.0±0.02µs 6.0±0.02µs 0.00%
Expression (Lexer) 1817.4±11.43ns 1798.6±3.13ns +1.05%
Expression (Parser) 4.3±0.01µs 4.3±0.01µs 0.00%
Fibonacci (Execution) 837.1±0.63µs 844.6±0.99µs -0.89%
For loop (Execution) 19.1±0.07µs 19.6±0.05µs -2.55%
For loop (Lexer) 4.5±0.00µs 4.5±0.00µs 0.00%
For loop (Parser) 12.2±0.05µs 12.2±0.02µs 0.00%
Hello World (Lexer) 791.1±0.80ns 791.3±0.90ns -0.03%
Hello World (Parser) 1954.2±1.85ns 1937.0±4.79ns +0.89%
Long file (Parser) 5.4±0.02ms 5.4±0.01ms 0.00%
Number Object Access (Execution) 3.5±0.00µs 3.5±0.01µs 0.00%
Object Creation (Execution) 5.3±0.01µs 5.2±0.03µs +1.92%
RegExp (Execution) 61.6±0.43µs 61.4±0.51µs +0.33%
RegExp Literal (Execution) 64.7±0.53µs 64.9±0.55µs -0.31%
RegExp Literal Creation (Execution) 61.6±0.52µs 61.5±0.48µs +0.16%
Static Object Property Access (Execution) 5.4±0.01µs 5.4±0.01µs 0.00%
String Object Access (Execution) 7.4±0.01µs 7.4±0.01µs 0.00%
String comparison (Execution) 5.7±0.03µs 5.7±0.02µs 0.00%
String concatenation (Execution) 4.8±0.01µs 4.8±0.01µs 0.00%
String copy (Execution) 3.9±0.03µs 3.8±0.02µs +2.63%
Symbols (Execution) 3.4±0.00µs 3.4±0.02µs 0.00%

@croraf
Copy link
Contributor

croraf commented Jul 8, 2020

I think reporting of incorrect, deficient or missing JS features should all go under Bugs.

The functionality of boa is to follow the latest ECMAScript, and any deviation is a bug. It is not up to the end user (reporter) to know if the implementation is incorrect, deficient or completely missing from Boa implementation.

(ofc, if the reporter is aware of these details, it is good that they put them in the additional notes in the issue report)

@Lan2u Lan2u closed this Jul 8, 2020
@Lan2u Lan2u reopened this Jul 8, 2020
@Lan2u
Copy link

Lan2u commented Jul 8, 2020

I think this is good especially since we will hopefully have test262 up and running soon and so, therefore, will have a good list of features which need implementing.

@croraf
Copy link
Contributor

croraf commented Jul 8, 2020

Would anything that doesn't conform with the test262 be an unimplemented feature then? What will be a bug then?

@HalidOdat
Copy link
Member

Would anything that doesn't conform with the test262 be an unimplemented feature then? What will be a bug then?

If something like String.prototype.charAt is not implemented then it's a feature request, but if it is implemented but does not work as expected than its a bug

@croraf
Copy link
Contributor

croraf commented Jul 8, 2020

How would someone using boa and reporting a bug know if it is unimplemented or not working as expected?

For example, I'm testing:

Object.defineProperties({}, {prop1: {value: '5'}})

And boa outputs me undefined. But I inspected the code, and I see defineProperties is not added on the Object builtin (or at least it seems to me it is not added).

@github-actions
Copy link

github-actions bot commented Jul 8, 2020

Benchmark for b5fe179

Click to view benchmark
Test PR Benchmark Master Benchmark %
Arithmetic operations (Execution) 448.7±23.13ns 393.7±26.10ns +13.97%
Array access (Execution) 13.6±0.65µs 14.0±0.79µs -2.86%
Array creation (Execution) 3.6±0.16ms 3.6±0.11ms 0.00%
Array pop (Execution) 1345.2±56.66µs 1413.6±108.13µs -4.84%
Boolean Object Access (Execution) 5.2±0.26µs 5.3±0.32µs -1.89%
Create Realm 150.6±9.25µs 147.5±8.35µs +2.10%
Dynamic Object Property Access (Execution) 7.3±0.84µs 7.2±0.42µs +1.39%
Expression (Lexer) 2.0±0.09µs 2.0±0.11µs 0.00%
Expression (Parser) 5.0±0.34µs 5.1±0.26µs -1.96%
Fibonacci (Execution) 1069.7±74.70µs 1047.7±45.56µs +2.10%
For loop (Execution) 23.1±1.67µs 22.8±1.41µs +1.32%
For loop (Lexer) 5.2±0.31µs 5.2±0.29µs 0.00%
For loop (Parser) 13.8±1.21µs 13.3±0.71µs +3.76%
Hello World (Lexer) 909.3±49.38ns 927.2±58.32ns -1.93%
Hello World (Parser) 2.2±0.13µs 2.2±0.12µs 0.00%
Long file (Parser) 6.2±0.17ms 6.1±0.19ms +1.64%
Number Object Access (Execution) 4.1±0.19µs 4.1±0.20µs 0.00%
Object Creation (Execution) 6.4±0.35µs 6.4±0.35µs 0.00%
RegExp (Execution) 78.5±6.27µs 75.6±4.35µs +3.84%
RegExp Literal (Execution) 82.3±6.57µs 79.4±4.00µs +3.65%
RegExp Literal Creation (Execution) 76.6±3.85µs 75.7±4.11µs +1.19%
Static Object Property Access (Execution) 6.7±0.29µs 6.7±0.48µs 0.00%
String Object Access (Execution) 8.7±0.57µs 9.0±0.48µs -3.33%
String comparison (Execution) 6.9±0.34µs 7.2±0.38µs -4.17%
String concatenation (Execution) 5.9±0.30µs 5.9±0.40µs 0.00%
String copy (Execution) 4.7±0.24µs 4.9±0.30µs -4.08%
Symbols (Execution) 4.3±0.41µs 4.1±0.29µs +4.88%

@Lan2u
Copy link

Lan2u commented Jul 8, 2020

Would anything that doesn't conform with the test262 be an unimplemented feature then? What will be a bug then?

Pretty much, I suspect we will have a significant amount of areas which will need addressing.

How would someone using boa and reporting a bug know if it is unimplemented or not working as expected?

For example, I'm testing:

Object.defineProperties({}, {prop1: {value: '5'}})

And boa outputs me undefined. But I inspected the code, and I see defineProperties is not added on the Object builtin (or at least it seems to me it is not added).

I suppose if they aren't involved with the development of the boa project then making that distinction falls to us to re-classify if required.

@croraf
Copy link
Contributor

croraf commented Jul 8, 2020

And also the example of granularity:

Object builtin is implemented but Object.create is not, so is this a new feature, or wrong behavior of Object,
or further
Object.create builtin is implemented but handling of its second optional argument additionalProperties is not, so is this a new feature, or wrong behavior of Object.create.
You can go further if for example Object.create with second argument of additionalProperties does not have implemented the handling of some nested cases.

@Razican
Copy link
Member Author

Razican commented Jul 8, 2020

I think reporting of incorrect, deficient or missing JS features should all go under Bugs.

The project has started pretty recently, at least with the current level of development speed. For example 8 months ago, most of the standard was not implemented. If you want something in the standard to be prioritized for implementation, then it's a feature request.

If we add a bug for each unimplemented feature, then await is a bug, since it doesn't work, modules don't work, so that's another bug. for..of / for..in don't work, so two more bugs. Oh, and generators are not implemented either, so another bug.

We can't even run test262, so most things are feature requests IMHO. Once we have that running, and we iron out bugs in our current implementation, we will have a list of non-implemented things, and there we can more clearly see the difference between a new feature or a bug.

We don't always implement the full thing when implementing a new feature, and we leave some things unimplemented. Your own #543 PR is an example of this. We have the unimplemented second parameter in create(). The create() function was implemented in a "best effort" basis. I don't think that the implementation has a bug and you didn't comply with the spec properly. There was nothing, then there was something. Probably not all, but you did progress, and that's what we need. I don't believe that's a bug.

And also the example of granularity

I think that if the create function is not implemented, then implementing it is a new feature. If a function receives one, two or three parameters, but we only have an implementation for the case with one parameter, implementing another one would be a new feature.

If we have an implementation for one parameter, but in an edge case, it doesn't work as expected, then it's a bug.

It's ok, until we don't have the test262 ready, the creator of the issue doesn't have to know if it's a bug or a feature. We can tag it later and add a comment explaining it, but if the creator of the issue has some experience with the project, they can maybe know if it's a new feature or a bug.

@Razican Razican merged commit 84db01e into master Jul 8, 2020
@Razican Razican deleted the improved_request_template branch July 8, 2020 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants