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

JerryScript 2.0 #2213

Closed
zherczeg opened this issue Feb 20, 2018 · 23 comments
Closed

JerryScript 2.0 #2213

zherczeg opened this issue Feb 20, 2018 · 23 comments
Labels
api Related to the public API discussion Ongoing discussion
Milestone

Comments

@zherczeg
Copy link
Member

It would be good to release JerryScript 2.0 this year. No specific deadline so far.

What we should do before that is reworking the API. Some ideas:

  • delete obsolote functions
  • rework error flag to be an error value (error can only be a result of something, and cannot be used as input except unboxing its value).
@martijnthe
Copy link
Contributor

delete obsolote functions

Which ones are those?

Quick search for "deprecated" through the code base revealed:

JERRY_DEPRECATED_API
bool jerry_get_object_native_handle (const jerry_value_t obj_val, uintptr_t *out_handle_p);
JERRY_DEPRECATED_API
void jerry_set_object_native_handle (const jerry_value_t obj_val, uintptr_t handle_p,
                                     jerry_object_free_callback_t freecb_p);
#pragma message ("using jerry-api.h directly is deprecated, please use jerryscript.h")
#pragma message ("using jerry-port.h directly is deprecated, please use jerryscript-port.h")
  JERRY_INIT_MEM_STATS_SEPARATE  = (1u << 3), /**< deprecated, an unused placeholder now */
  JERRY_INIT_DEBUGGER            = (1u << 4), /**< deprecated, an unused placeholder now */

Anything else (other than the "old"/current error flag APIs)?

@zherczeg
Copy link
Member Author

Mostly these. Maybe the parse variant where the source is not provided, but that is not necessary. We should emphasize that pass source info if available, and pass NULL if not.

It will be a much smaller scope API rework that JerryScript 1.0.

@LaszloLango LaszloLango added api Related to the public API discussion Ongoing discussion labels Feb 20, 2018
@LaszloLango LaszloLango added this to the Release 2.0 milestone Feb 20, 2018
@galpeter
Copy link
Contributor

I've got a few suggestions for extra API functions/improvements:

  • JSON C API - parse/stringify
  • Regex construction from API / maybe even exec/test
  • Allow jerry_is_feature_enabled to query builtin/es2015-subset objects
  • Add DataView for es2015-subset

please note I'm not sure how widely they would be used or needed.

@galpeter
Copy link
Contributor

(IMHO) If we want to remove functions we should mark them as obsolete as a first step. This way we can (hopefully) notify the users that there will be a bigger change. Related to this I think we should consider writing a migration guide or at least a change list between v1 and v2.

@zherczeg
Copy link
Member Author

Snapshot generation API rework #2259

Lets just collect the API rework patches here, and later we can write a changelog using these references.

@zherczeg
Copy link
Member Author

zherczeg commented Apr 5, 2018

Snapshot executing API rework #2270

@zherczeg
Copy link
Member Author

Jerry parse rework: #2282

@imiklos
Copy link
Contributor

imiklos commented Apr 19, 2018

Rename the jerry_value_has_error_flag function: #2290

@imiklos
Copy link
Contributor

imiklos commented Apr 19, 2018

Rename the jerry_value_has_abort_flag function #2291

@zherczeg
Copy link
Member Author

zherczeg commented Jun 6, 2018

Replace the jerry_value_set_error_flag function with jerry_create_error_from_value #2367

@zherczeg
Copy link
Member Author

zherczeg commented Jun 6, 2018

Add operational mode for jerry_gc API call. #2385

@imiklos
Copy link
Contributor

imiklos commented Jun 25, 2018

Replace jerry_value_set_abort_flag with jerry_create_abort_from_value #2411

@lygstate
Copy link
Contributor

would 2.0 be a LTS version?

@zherczeg
Copy link
Member Author

Remove jerry_get_arg_value auto-conversion function: #2425

@zherczeg
Copy link
Member Author

We only do backward incompatible changes before releases. So yes, after these are landed, there will be no large change for a long time.

@rerobika
Copy link
Member

Simplify source evaluation options. #2431

@zherczeg
Copy link
Member Author

Remove character pointer typedefs. #2492

@zherczeg
Copy link
Member Author

Remove deprecated native handle support. #2496

@zherczeg
Copy link
Member Author

zherczeg commented Sep 3, 2018

Merge instance into context #2501

@LaszloLango
Copy link
Contributor

Snapshot API change: #2507

@wangzhikang123
Copy link
Contributor

We use JerryScript in our products, and we need to rely on an officially released version. But version 1.0 is too old to meet the demand, and we expect the community to release version 2.0 as soon as possible. Do you have a release plan in the near future?

@akosthekiss
Copy link
Member

@wangzhikang123 Admittedly, the releasing process of the project has room for improvement. But still, "expect" is a somewhat strong word. Moreover, if you are using the project in products (which is great!), don't hesitate to take part in the public development of the project by contributing back improvements or outstanding bug fixes. Please, also refer to the governance wiki page ("expect" vs meritocracy).

@LaszloLango
Copy link
Contributor

JerryScript 2.0 is out. You can find the release here: https://github.com/jerryscript-project/jerryscript/releases/tag/v2.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api Related to the public API discussion Ongoing discussion
Projects
None yet
Development

No branches or pull requests

9 participants