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

GSoC Final Evaluation Part1: Implementing (de)serialization routines for generic data types #2351

Open
wants to merge 63 commits into
base: AST-Generation
Choose a base branch
from

Conversation

FaresAtef1
Copy link

@FaresAtef1 FaresAtef1 commented Aug 9, 2023

Final GSoC Part1 Update

Closes #2326.
This pull request contains updates for my Google Summer of Code (GSoC) project at the Final evaluation stage.

First PR (Midterm Evaluation Part): Changing the way the serialize, serialize_into and deserialize functions work
Third PR(Final Evaluation Part2): Adding support for JSON format

Feature Implementation

  • Adding support for std::vector.
  • Adding support for std::map.
  • Adding support for std::complex.
  • Adding support for std::set.
  • Adding support for std::tuple.
  • Adding support for std::queue.
  • Adding support for std::stack.
  • Adding support for std::pair.

Testing Functions (unit tests)

  • Testing std::vector functions.
  • Testing std::map functions.
  • Testing std::complex functions.
  • Testing std::set functions.
  • Testing std::tuple functions.
  • Testing std::queue functions.
  • Testing std::stack functions.
  • Testing std::pair functions.

Organization

  • Seperate file for each type.
  • type_traits.h for all the is_std_type.
  • Move insert_back to a better place.
  • Types_Implementation new directory.
  • Clean serialization_fwd_decl.h.

To Be Done Before Merging

  • Update byte_size for std::vector and std::map.
  • Update byte_size for lua_table.
  • Get rid of enigma_internal_sizeof_type and replace with byte_size directly.
  • Replace enable_if<is_same_v<>> with is_type_t.
  • Replace all r-value refs.

Adding new types

See Adding new types for the bytes format section here.

Sample game that is compatible with the AST_Generation branch

Balloon_Pop (It is the same game in the ENIGMA site but with modified scripts).

Ongoing Work

What's Next

GSoC Final Evaluation 2: Adding support for other serialization formats

@FaresAtef1 FaresAtef1 marked this pull request as ready for review August 14, 2023 19:02
@FaresAtef1 FaresAtef1 changed the title GSoC Final Evaluation: Implementing (de)serialization routines for generic data types GSoC Final Evaluation Part1: Implementing (de)serialization routines for generic data types Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants