-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Userland: Port all GML-based applications to GML compilation #20518
Labels
Comments
kleinesfilmroellchen
added
good first issue
Good for newcomers
task list
This issue contains a list of tasks.
labels
Aug 12, 2023
Merged
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 25, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 25, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 25, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 28, 2023
This PR contributes to SerenityOS#20518.
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This PR contributes to SerenityOS#20518.
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This commit contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This PR contributes to SerenityOS#20518.
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This commit contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
pushed a commit
to tetektoza/serenity
that referenced
this issue
Sep 29, 2023
This patch contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This PR contributes to SerenityOS#20518.
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This commit contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This patch contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This patch contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 1, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 2, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 3, 2023
This PR contributes to SerenityOS#20518.
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 3, 2023
This patch contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 3, 2023
This patch contributes to SerenityOS#20518
tetektoza
added a commit
to tetektoza/serenity
that referenced
this issue
Oct 24, 2023
This patch ports minesweeper to GML compilation, and introduces a few changes made to associated files. It contributes to SerenityOS#20518
This was referenced Dec 26, 2023
This was referenced Jan 7, 2024
1 task
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
All GML-based applications should use the new (proper) GML compiler, which allows us, among other things, to verify in CI that the GML is well-formed to a high degree. This is a task list for all applications which still need this done. To find a candidate yourself, just search for
stringify_gml
, the old non-compiling GML method, in the CMake lists.Porting an application usually involves the following steps, assuming that there already is a dedicated widget class for the GML definition:
try_create
method to the appropriate widget. The compiler error on the generated file will tell you how that must look exactly.try_create
(which is generated from GML and will perform initial setup), then it performs its own setup. Remove anyload_from_gml
calls.If the widget has no extra setup, any previously existing try_create can just be removed (including all load_from_gml calls).Move extra setup to a public methodtry_create
must then be public.ErrorOr<void> initialize()
; see GMLCompiler+Applications: Add common user-defined initializer for widgets #22860The only real place for error is an incorrectly public try_create or failing to call try_create in the custom setup function; any other error is caught by the compiler.
In some instances, the GML compiler needs to learn about new special cases not encountered before, like string argument types, enum properties, etc. I can't always predict when this is necessary, even though I'm certain most of the special cases are accounted for.
When this task list is completed: Don't delete the load_from_gml function or Playground! They are here to stay. However, the stringify_gml CMake function can be removed.
The text was updated successfully, but these errors were encountered: