Skip to content

Commit ffb9ea5

Browse files
alimpfardspholz
authored andcommitted
Meta+Userland: Update Jakt to latest
This version fixes clang 22 errors on build.
1 parent a3b1af9 commit ffb9ea5

File tree

4 files changed

+38
-20
lines changed

4 files changed

+38
-20
lines changed

Meta/CMake/jakt.cmake

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,27 @@ if (ENABLE_JAKT)
3737
message(WARNING "Jakt compiler not found at ${JAKT_COMPILER}, disabling jakt")
3838
set(ENABLE_JAKT OFF CACHE BOOL "Enable jakt" FORCE)
3939
else()
40+
find_package(Python COMPONENTS Interpreter REQUIRED)
41+
file(WRITE ${CMAKE_BINARY_DIR}/jakt_test.cpp "#include <new>")
42+
execute_process(
43+
COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/get_cxx_includes.py
44+
--compiler ${CMAKE_CXX_COMPILER}
45+
--test-file "${CMAKE_BINARY_DIR}/jakt_test.cpp"
46+
--target "${CMAKE_CXX_COMPILER_TARGET}"
47+
OUTPUT_VARIABLE CXX_SYSTEM_INCLUDES_CLEAN
48+
)
49+
list(REMOVE_DUPLICATES CXX_SYSTEM_INCLUDES_CLEAN)
50+
51+
set(test_sysroot_arg)
52+
if (CMAKE_SYSROOT)
53+
set(test_sysroot_arg "--extra-cpp-flag--sysroot=${CMAKE_SYSROOT}")
54+
endif()
55+
56+
set(test_system_includes)
57+
foreach(include IN LISTS CXX_SYSTEM_INCLUDES_CLEAN)
58+
list(APPEND test_system_includes "--extra-cpp-flag-isystem${include}")
59+
endforeach()
60+
4061
file(WRITE ${CMAKE_BINARY_DIR}/jakt_test.jakt "import extern \"LibMain/Main.h\"\nfn main() { }\n")
4162
set(include_args)
4263
set(all_includes
@@ -58,6 +79,8 @@ if (ENABLE_JAKT)
5879
--ak-is-my-only-stdlib
5980
-T ${JAKT_TARGET_TRIPLE}
6081
--binary-dir ${CMAKE_BINARY_DIR}
82+
${test_sysroot_arg}
83+
${test_system_includes}
6184
${include_args}
6285
${CMAKE_BINARY_DIR}/jakt_test.jakt
6386
RESULT_VARIABLE JAKT_COMPILER_RESULT
@@ -76,19 +99,6 @@ if (NOT ENABLE_JAKT)
7699
return()
77100
endif()
78101

79-
find_package(Python COMPONENTS Interpreter REQUIRED)
80-
file(WRITE ${CMAKE_BINARY_DIR}/jakt_test.cpp "#include <new>")
81-
execute_process(
82-
COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/get_cxx_includes.py
83-
--compiler ${CMAKE_CXX_COMPILER}
84-
--test-file "${CMAKE_BINARY_DIR}/jakt_test.cpp"
85-
--target "${CMAKE_CXX_COMPILER_TARGET}"
86-
OUTPUT_VARIABLE CXX_SYSTEM_INCLUDES_CLEAN
87-
)
88-
89-
# Remove duplicates
90-
list(REMOVE_DUPLICATES CXX_SYSTEM_INCLUDES_CLEAN)
91-
92102
cmake_host_system_information(RESULT JAKT_PROCESSOR_COUNT QUERY NUMBER_OF_PHYSICAL_CORES)
93103
set_property(GLOBAL PROPERTY JOB_POOLS jakt_pool=1)
94104

Toolchain/BuildJakt.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ buildstep_ninja() {
8282

8383
mkdir -p "$DIR/Tarballs"
8484

85-
JAKT_COMMIT_HASH="e990cc5667e32bc295556057972f117662b009bb"
85+
JAKT_COMMIT_HASH="6f6c9e9005683b0c1cf59f6282a1bb15770e1c92"
8686
JAKT_NAME="jakt-${JAKT_COMMIT_HASH}"
8787
JAKT_TARBALL="${JAKT_NAME}.tar.gz"
8888
JAKT_GIT_URL="https://github.com/serenityos/jakt"

Userland/Applications/Weather/main.jakt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ fn api(
9393
return OpenWeatherMap(
9494
api_key: key
9595
make_request: fn[&mut client, &mut async](anon u: prelude::String) throws -> RequestData {
96-
mut request = start_request(&mut client, "GET", URL::URL(u))
96+
mut request = start_request(&mut client, "GET", URL::URL(&u))
9797
mut promise: Promise<prelude::String> = Promise()
9898

9999
unsafe {
@@ -128,15 +128,16 @@ fn do_incremental_search<T>(
128128
return true
129129
}))
130130
} catch e {
131-
GUI::MessageBox::show_error(&raw window, format("Failed to fetch search results: {}", e))
131+
let error = format("Failed to fetch search results: {}", e)
132+
GUI::MessageBox::show_error(&raw window, ak_string_view(&error))
132133
}
133134
}
134135

135136
fn update_entry<T>(
136137
mut entry: IndividualEntryWidget
137138
api: &mut T
138139
window: &GUI::Window
139-
query: AK::ByteString
140+
query: prelude::String
140141
first_time: bool = false
141142
) {
142143
try {
@@ -157,10 +158,16 @@ fn update_entry<T>(
157158
entry.invalidate_layout()
158159
} catch e {
159160
entry.remove_from_parent()
160-
GUI::MessageBox::show_error(&raw window, format("Failed to fetch weather data: {}", e))
161+
let error = format("Failed to fetch weather data: {}", e)
162+
GUI::MessageBox::show_error(&raw window, ak_string_view(&error))
161163
}
162164
}
163165

166+
[[stores_arguments(from: "return")]]
167+
fn ak_string_view(anon from: &prelude::String) -> AK::StringView {
168+
return AK::StringView(from)
169+
}
170+
164171
fn main() {
165172
let args: AK::Span<AK::StringView> = AK::Span()
166173
mut app = GUI::Application::create(&Main::Arguments(0, null(), args))
@@ -226,7 +233,7 @@ fn main() {
226233
mut c = view.content!
227234
mut entry = c.add<UnderlyingClassTypeOf<IndividualEntryWidget>>().self()
228235
entry.container!.set_view_state(GUI::DynamicWidgetContainer::ViewState::Collapsed)
229-
try update_entry(entry, api: &mut owm_api, &window, query: name as! ByteString, first_time: true)
236+
try update_entry(entry, api: &mut owm_api, &window, query: name, first_time: true)
230237

231238
view.searchbox!.set_text("", GUI::TextBox::AllowCallback::No)
232239
view.searchbox!.set_focus(false, GUI::TextBox::FocusSource::Programmatic)

Userland/Applications/Weather/view.jakt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,10 @@ namespace Weather {
166166

167167
.forecast_labels = []
168168
for i in 1..5 {
169+
let name = format("forecast{}", i)
169170
let label = must_be<GUI::Label>(
170171
"forecast_labels"
171-
.find_descendant_of_type_named<UnderlyingClassTypeOf<GUI::Label>>(format("forecast{}", i))
172+
.find_descendant_of_type_named<UnderlyingClassTypeOf<GUI::Label>>(AK::StringView(&name))
172173
)
173174

174175
.forecast_labels!.push(label)

0 commit comments

Comments
 (0)