Ticket #1910 (closed deprecation: fixed)

Opened 4 years ago

Last modified 3 years ago

Review and Dissolve old embedding API

Reported by: whiteknight Owned by: whiteknight
Priority: normal Milestone:
Component: core Version: master
Severity: medium Keywords: embed
Cc: cotto Language:
Patch status: Platform: all

Description

The old embedding API in src/embed.c is being replaced by a new API in src/embed/*. The old API will not be needed anymore after a deprecation cycle.

Some of the functions in the old API are worth keeping, but they probably need to be renamed and moved to someplace more appropriate. Some functions are not needed and can be removed after a deprecation cycle.

We should review these functions and put in any necessary deprecation notices before the 3.0 release

Change History

Changed 4 years ago by whiteknight

Here's my first-blush list of the functions in src/embed.c, and what I think we can do with them:

=== DELETE ===
Parrot_new
Parrot_init_stacktop 
Parrot_set_run_core (needs major rework to use strings, not enums)
Parrot_pbc_fixup_loaded
setup_argv
print_debug
set_current_sub
Parrot_runcode
Parrot_run_native
Parrot_compile_string
Parrot_set_configuration_hash_legacy

=== Move/Rename ===
Parrot_set_flag
Parrot_set_debug
Parrot_set_executable_name
Parrot_set_trace
Parrot_clear_flag
Parrot_clear_debug
Parrot_clear_trace
Parrot_test_flag
Parrot_test_debug
Parrot_test_trace
Parrot_setwarnings
Parrot_pbc_read
Parrot_pbc_load
Parrot_load_bytecode_file
Parrot_debug
print_constant_table
Parrot_disassemble

Changed 4 years ago by whiteknight

  • status changed from new to assigned

Deprecation notice added in 06b1fad, after voting on the issue today at #ps

Changed 3 years ago by whiteknight

  • type changed from RFC to deprecation
  • milestone 3.0 deleted

There are only a handful of functions left in this file, and I've included comments there to indicate what the intended upgrade paths are for each. The deprecation notice has also been added, so we will start to take care of this issue in the coming weeks and months.

Changed 3 years ago by whiteknight

I've started the whiteknight/tt_1910 branch to start tackling this deprecation. I'll post updates as the branch progresses.

Changed 3 years ago by whiteknight

I just brought this branch up to date with master. There were a handful of conflicts which I fixed already, and a handful of test failures that need to be resolved. I'll try to do that soon and prepare for a merge. When I'm ready, I'll do testing (especially on Rakudo) and send out a message to parrot-dev asking others to do the same.

Changed 3 years ago by whiteknight

  • status changed from assigned to closed
  • resolution set to fixed

I just merged the whiteknight/tt_1910 branch to master. As far as I am concerned, that branch satisfies this ticket, so I am closing it. If there are any other issues related to older embed API functions or the like, we can address those separately.

If any external projects were secretly relying on some of these functions and they are broken now, let me know and I can help out with patches. Most of the functions that I removed were pretty useless in my opinion, but they may have found uses elsewhere that I can't think of.

Note: See TracTickets for help on using tickets.