Meta+Userland: Update Jakt to latest

This version fixes clang 22 errors on build.
This commit is contained in:
Ali Mohammad Pur
2026-03-19 15:48:34 +01:00
committed by Sönke Holz
parent a3b1af96e0
commit ffb9ea56dc
4 changed files with 38 additions and 20 deletions

View File

@@ -37,6 +37,27 @@ if (ENABLE_JAKT)
message(WARNING "Jakt compiler not found at ${JAKT_COMPILER}, disabling jakt")
set(ENABLE_JAKT OFF CACHE BOOL "Enable jakt" FORCE)
else()
find_package(Python COMPONENTS Interpreter REQUIRED)
file(WRITE ${CMAKE_BINARY_DIR}/jakt_test.cpp "#include <new>")
execute_process(
COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/get_cxx_includes.py
--compiler ${CMAKE_CXX_COMPILER}
--test-file "${CMAKE_BINARY_DIR}/jakt_test.cpp"
--target "${CMAKE_CXX_COMPILER_TARGET}"
OUTPUT_VARIABLE CXX_SYSTEM_INCLUDES_CLEAN
)
list(REMOVE_DUPLICATES CXX_SYSTEM_INCLUDES_CLEAN)
set(test_sysroot_arg)
if (CMAKE_SYSROOT)
set(test_sysroot_arg "--extra-cpp-flag--sysroot=${CMAKE_SYSROOT}")
endif()
set(test_system_includes)
foreach(include IN LISTS CXX_SYSTEM_INCLUDES_CLEAN)
list(APPEND test_system_includes "--extra-cpp-flag-isystem${include}")
endforeach()
file(WRITE ${CMAKE_BINARY_DIR}/jakt_test.jakt "import extern \"LibMain/Main.h\"\nfn main() { }\n")
set(include_args)
set(all_includes
@@ -58,6 +79,8 @@ if (ENABLE_JAKT)
--ak-is-my-only-stdlib
-T ${JAKT_TARGET_TRIPLE}
--binary-dir ${CMAKE_BINARY_DIR}
${test_sysroot_arg}
${test_system_includes}
${include_args}
${CMAKE_BINARY_DIR}/jakt_test.jakt
RESULT_VARIABLE JAKT_COMPILER_RESULT
@@ -76,19 +99,6 @@ if (NOT ENABLE_JAKT)
return()
endif()
find_package(Python COMPONENTS Interpreter REQUIRED)
file(WRITE ${CMAKE_BINARY_DIR}/jakt_test.cpp "#include <new>")
execute_process(
COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/get_cxx_includes.py
--compiler ${CMAKE_CXX_COMPILER}
--test-file "${CMAKE_BINARY_DIR}/jakt_test.cpp"
--target "${CMAKE_CXX_COMPILER_TARGET}"
OUTPUT_VARIABLE CXX_SYSTEM_INCLUDES_CLEAN
)
# Remove duplicates
list(REMOVE_DUPLICATES CXX_SYSTEM_INCLUDES_CLEAN)
cmake_host_system_information(RESULT JAKT_PROCESSOR_COUNT QUERY NUMBER_OF_PHYSICAL_CORES)
set_property(GLOBAL PROPERTY JOB_POOLS jakt_pool=1)

View File

@@ -82,7 +82,7 @@ buildstep_ninja() {
mkdir -p "$DIR/Tarballs"
JAKT_COMMIT_HASH="e990cc5667e32bc295556057972f117662b009bb"
JAKT_COMMIT_HASH="6f6c9e9005683b0c1cf59f6282a1bb15770e1c92"
JAKT_NAME="jakt-${JAKT_COMMIT_HASH}"
JAKT_TARBALL="${JAKT_NAME}.tar.gz"
JAKT_GIT_URL="https://github.com/serenityos/jakt"

View File

@@ -93,7 +93,7 @@ fn api(
return OpenWeatherMap(
api_key: key
make_request: fn[&mut client, &mut async](anon u: prelude::String) throws -> RequestData {
mut request = start_request(&mut client, "GET", URL::URL(u))
mut request = start_request(&mut client, "GET", URL::URL(&u))
mut promise: Promise<prelude::String> = Promise()
unsafe {
@@ -128,7 +128,8 @@ fn do_incremental_search<T>(
return true
}))
} catch e {
GUI::MessageBox::show_error(&raw window, format("Failed to fetch search results: {}", e))
let error = format("Failed to fetch search results: {}", e)
GUI::MessageBox::show_error(&raw window, ak_string_view(&error))
}
}
@@ -136,7 +137,7 @@ fn update_entry<T>(
mut entry: IndividualEntryWidget
api: &mut T
window: &GUI::Window
query: AK::ByteString
query: prelude::String
first_time: bool = false
) {
try {
@@ -157,10 +158,16 @@ fn update_entry<T>(
entry.invalidate_layout()
} catch e {
entry.remove_from_parent()
GUI::MessageBox::show_error(&raw window, format("Failed to fetch weather data: {}", e))
let error = format("Failed to fetch weather data: {}", e)
GUI::MessageBox::show_error(&raw window, ak_string_view(&error))
}
}
[[stores_arguments(from: "return")]]
fn ak_string_view(anon from: &prelude::String) -> AK::StringView {
return AK::StringView(from)
}
fn main() {
let args: AK::Span<AK::StringView> = AK::Span()
mut app = GUI::Application::create(&Main::Arguments(0, null(), args))
@@ -226,7 +233,7 @@ fn main() {
mut c = view.content!
mut entry = c.add<UnderlyingClassTypeOf<IndividualEntryWidget>>().self()
entry.container!.set_view_state(GUI::DynamicWidgetContainer::ViewState::Collapsed)
try update_entry(entry, api: &mut owm_api, &window, query: name as! ByteString, first_time: true)
try update_entry(entry, api: &mut owm_api, &window, query: name, first_time: true)
view.searchbox!.set_text("", GUI::TextBox::AllowCallback::No)
view.searchbox!.set_focus(false, GUI::TextBox::FocusSource::Programmatic)

View File

@@ -166,9 +166,10 @@ namespace Weather {
.forecast_labels = []
for i in 1..5 {
let name = format("forecast{}", i)
let label = must_be<GUI::Label>(
"forecast_labels"
.find_descendant_of_type_named<UnderlyingClassTypeOf<GUI::Label>>(format("forecast{}", i))
.find_descendant_of_type_named<UnderlyingClassTypeOf<GUI::Label>>(AK::StringView(&name))
)
.forecast_labels!.push(label)