Skip to content

Commit 22b122a

Browse files
committed
rt: Mark extern blocks as unsafe
1 parent e24d345 commit 22b122a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+189
-184
lines changed

dora-runtime/src/boots.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,24 @@ use std::mem;
22
use std::ptr;
33

44
use dora_bytecode::{
5-
display_fct, AliasId, BytecodeTraitType, BytecodeTypeArray, ClassId, EnumId, FunctionId,
6-
FunctionKind, GlobalId, ImplId, StructId, TraitId,
5+
AliasId, BytecodeTraitType, BytecodeTypeArray, ClassId, EnumId, FunctionId, FunctionKind,
6+
GlobalId, ImplId, StructId, TraitId, display_fct,
77
};
88

99
use crate::boots::deserializer::{
10-
decode_bytecode_trait_ty, decode_bytecode_type, decode_bytecode_type_array,
11-
decode_code_descriptor, decode_specialize_self, ByteReader,
10+
ByteReader, decode_bytecode_trait_ty, decode_bytecode_type, decode_bytecode_type_array,
11+
decode_code_descriptor, decode_specialize_self,
1212
};
13-
use crate::boots::serializer::{encode_compilation_info, ByteBuffer};
13+
use crate::boots::serializer::{ByteBuffer, encode_compilation_info};
1414
use crate::cannon::codegen::get_function_address as get_function_address_raw;
1515
use crate::compiler::{CompilationData, CompilationMode};
1616
use crate::gc::Address;
17-
use crate::handle::{create_handle, Handle};
18-
use crate::mirror::{byte_array_from_buffer, Object, Ref, Str, UInt8Array};
17+
use crate::handle::{Handle, create_handle};
18+
use crate::mirror::{Object, Ref, Str, UInt8Array, byte_array_from_buffer};
1919
use crate::threads::current_thread;
2020
use crate::vm::compute_vtable_index;
2121
use crate::vm::specialize_ty;
22-
use crate::vm::{create_enum_instance, get_vm, impls, CodeDescriptor, FctImplementation, VM};
22+
use crate::vm::{CodeDescriptor, FctImplementation, VM, create_enum_instance, get_vm, impls};
2323

2424
mod data;
2525
mod deserializer;

dora-runtime/src/cannon/asm.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
use std::mem;
22

3-
use crate::cannon::codegen::{mode, result_passed_as_argument, result_reg_mode, size, RegOrOffset};
4-
use crate::compiler::codegen::{AllocationSize, AnyReg};
3+
use crate::Shape;
4+
use crate::cannon::codegen::{RegOrOffset, mode, result_passed_as_argument, result_reg_mode, size};
55
use crate::compiler::CompilationMode;
6+
use crate::compiler::codegen::{AllocationSize, AnyReg};
67
use crate::cpu::{
7-
FReg, Reg, FREG_RESULT, REG_PARAMS, REG_RESULT, REG_SP, REG_THREAD, REG_TMP1,
8+
FREG_RESULT, FReg, REG_PARAMS, REG_RESULT, REG_SP, REG_THREAD, REG_TMP1, Reg,
89
STACK_FRAME_ALIGNMENT,
910
};
10-
use crate::gc::tlab::MAX_TLAB_OBJECT_SIZE;
1111
use crate::gc::Address;
12+
use crate::gc::tlab::MAX_TLAB_OBJECT_SIZE;
1213
use crate::masm::{CondCode, Label, MacroAssembler, Mem, ScratchReg};
1314
use crate::mirror::Header;
1415
use crate::mode::MachineMode;
1516
use crate::threads::ThreadLocalData;
1617
use crate::vm::{
17-
create_enum_instance, create_struct_instance, get_concrete_tuple_bty_array, CodeDescriptor,
18-
EnumLayout, GcPoint, LazyCompilationSite, Trap, INITIALIZED, VM,
18+
CodeDescriptor, EnumLayout, GcPoint, INITIALIZED, LazyCompilationSite, Trap, VM,
19+
create_enum_instance, create_struct_instance, get_concrete_tuple_bty_array,
1920
};
20-
use crate::Shape;
2121
use dora_bytecode::{BytecodeType, BytecodeTypeArray, FunctionId, GlobalId, Location, StructId};
2222

2323
pub struct BaselineAssembler<'a> {

dora-runtime/src/compiler/aot.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@ use std::sync::Arc;
33
use std::time::Instant;
44

55
use dora_bytecode::{
6-
display_fct, BytecodeFunction, BytecodeInstruction, BytecodeReader, BytecodeTraitType,
7-
BytecodeType, BytecodeTypeArray, ConstPoolEntry, FunctionId, FunctionKind, PackageId,
6+
BytecodeFunction, BytecodeInstruction, BytecodeReader, BytecodeTraitType, BytecodeType,
7+
BytecodeTypeArray, ConstPoolEntry, FunctionId, FunctionKind, PackageId, display_fct,
88
};
99

10-
use crate::compiler::codegen::{compile_runtime_entry_trampoline, CompilerInvocation};
10+
use crate::compiler::codegen::{CompilerInvocation, compile_runtime_entry_trampoline};
1111
use crate::compiler::{
12-
compile_fct_aot, trait_object_thunk, CompilationMode, NativeFct, NativeFctKind,
12+
CompilationMode, NativeFct, NativeFctKind, compile_fct_aot, trait_object_thunk,
1313
};
14-
use crate::gc::{formatted_size, Address};
14+
use crate::gc::{Address, formatted_size};
1515
use crate::os;
1616
use crate::vm::{
17-
ensure_shape_for_lambda, ensure_shape_for_trait_object, execute_on_main, find_trait_impl,
18-
specialize_bty, specialize_bty_array, BytecodeTypeExt, Code, LazyCompilationSite, ShapeKind,
19-
VM,
17+
BytecodeTypeExt, Code, LazyCompilationSite, ShapeKind, VM, ensure_shape_for_lambda,
18+
ensure_shape_for_trait_object, execute_on_main, find_trait_impl, specialize_bty,
19+
specialize_bty_array,
2020
};
21-
use crate::{get_bytecode, Shape, SpecializeSelf};
21+
use crate::{Shape, SpecializeSelf, get_bytecode};
2222

2323
pub fn compile_boots_aot(vm: &VM) {
2424
if vm.has_boots() {
@@ -45,11 +45,12 @@ pub fn compile_boots_aot(vm: &VM) {
4545
(stage1_compiler_address, stage1_ctc)
4646
};
4747

48-
assert!(vm
49-
.known
50-
.boots_compile_fct_address
51-
.set(boots_compiler_address)
52-
.is_ok());
48+
assert!(
49+
vm.known
50+
.boots_compile_fct_address
51+
.set(boots_compiler_address)
52+
.is_ok()
53+
);
5354

5455
let tests = compute_test_addresses(&ctc, tests);
5556
assert!(vm.known.boots_test_addresses.set(tests).is_ok());

dora-runtime/src/compiler/codegen.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ use std::time::Instant;
33

44
use crate::boots;
55
use crate::cannon;
6-
use crate::compiler::{runtime_entry_trampoline, CompilationMode, NativeFct};
6+
use crate::compiler::{CompilationMode, NativeFct, runtime_entry_trampoline};
77
use crate::cpu::{FReg, Reg};
88
use crate::disassembler;
99
use crate::gc::Address;
1010
use crate::os;
11-
use crate::vm::{install_code, Code, CodeDescriptor, CodeId, CodeKind, Compiler, VM};
11+
use crate::vm::{Code, CodeDescriptor, CodeId, CodeKind, Compiler, VM, install_code};
1212
use dora_bytecode::{
13-
display_fct, display_ty_array, display_ty_without_type_params, dump_stdout, BytecodeFunction,
14-
BytecodeTraitType, BytecodeType, BytecodeTypeArray, FunctionData, FunctionId, FunctionKind,
15-
ImplId, Location, TypeParamMode,
13+
BytecodeFunction, BytecodeTraitType, BytecodeType, BytecodeTypeArray, FunctionData, FunctionId,
14+
FunctionKind, ImplId, Location, TypeParamMode, display_fct, display_ty_array,
15+
display_ty_without_type_params, dump_stdout,
1616
};
1717

1818
#[derive(Clone, Copy)]

dora-runtime/src/compiler/dora_entry_trampoline.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::cpu::{
77
use crate::masm::{MacroAssembler, Mem};
88
use crate::mem;
99
use crate::mode::MachineMode;
10-
use crate::vm::{install_code_stub, Code, CodeDescriptor, CodeKind, VM};
10+
use crate::vm::{Code, CodeDescriptor, CodeKind, VM, install_code_stub};
1111

1212
pub fn install<'a>(vm: &'a VM) -> Arc<Code> {
1313
let ngen = DoraEntryGen {

dora-runtime/src/compiler/lazy_compilation_stub.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ use crate::cpu::{
88
STACK_FRAME_ALIGNMENT,
99
};
1010
use crate::gc::{Address, Slot};
11-
use crate::handle::{handle_scope, Handle};
11+
use crate::handle::{Handle, handle_scope};
1212
use crate::masm::{MacroAssembler, Mem};
1313
use crate::mem;
1414
use crate::mirror::Object;
1515
use crate::mode::MachineMode;
1616
use crate::os;
1717
use crate::stack::DoraToNativeInfo;
18-
use crate::threads::{current_thread, ThreadLocalData};
18+
use crate::threads::{ThreadLocalData, current_thread};
1919
use crate::vm::{
20-
create_enum_instance, get_vm, install_code_stub, BytecodeTypeExt, Code, CodeKind, EnumLayout,
21-
LazyCompilationSite, ShapeKind, VM,
20+
BytecodeTypeExt, Code, CodeKind, EnumLayout, LazyCompilationSite, ShapeKind, VM,
21+
create_enum_instance, get_vm, install_code_stub,
2222
};
2323
use dora_bytecode::{BytecodeType, BytecodeTypeArray, FunctionId};
2424

dora-runtime/src/compiler/runtime_entry_trampoline.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use std::sync::Arc;
44
use crate::cannon::codegen::mode;
55
use crate::compiler::codegen::AnyReg;
66
use crate::cpu::{
7-
FReg, Reg, CCALL_FREG_PARAMS, CCALL_REG_PARAMS, FREG_PARAMS, FREG_TMP1, PARAM_OFFSET, REG_FP,
8-
REG_PARAMS, REG_SP, REG_THREAD, SCRATCH, STACK_FRAME_ALIGNMENT,
7+
CCALL_FREG_PARAMS, CCALL_REG_PARAMS, FREG_PARAMS, FREG_TMP1, FReg, PARAM_OFFSET, REG_FP,
8+
REG_PARAMS, REG_SP, REG_THREAD, Reg, SCRATCH, STACK_FRAME_ALIGNMENT,
99
};
1010
use crate::gc::Address;
1111
use crate::masm::{MacroAssembler, Mem};

dora-runtime/src/compiler/trait_object_thunk.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use std::sync::Arc;
22

33
use crate::cannon::codegen::register_ty;
4-
use crate::compiler::codegen::{compile_fct_to_code, select_compiler};
54
use crate::compiler::CompilationMode;
5+
use crate::compiler::codegen::{compile_fct_to_code, select_compiler};
66
use crate::gc::Address;
7-
use crate::vm::{specialize_bty_for_trait_object, BytecodeTypeExt, Code, CodeId, Compiler, VM};
7+
use crate::vm::{BytecodeTypeExt, Code, CodeId, Compiler, VM, specialize_bty_for_trait_object};
88
use dora_bytecode::{
99
BytecodeFunction, BytecodeType, BytecodeTypeArray, BytecodeWriter, ConstPoolEntry, FunctionId,
1010
FunctionKind, Register,

dora-runtime/src/cpu/arm64.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
#[cfg(not(target_os = "macos"))]
22
use std::arch::asm;
33

4-
use dora_asm::arm64::cls::uncond_branch_imm;
54
use dora_asm::arm64::Cond;
5+
use dora_asm::arm64::cls::uncond_branch_imm;
66
use lazy_static::lazy_static;
77

8-
use crate::masm::CondCode;
98
use crate::Address;
9+
use crate::masm::CondCode;
1010

1111
#[cfg(target_os = "macos")]
1212
pub fn flush_icache(start: *const u8, len: usize) {
13-
extern "C" {
13+
unsafe extern "C" {
1414
fn sys_icache_invalidate(data: *const u8, len: usize);
1515
}
1616

dora-runtime/src/cpu/x64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use lazy_static::lazy_static;
2-
use std::sync::atomic::{compiler_fence, Ordering};
2+
use std::sync::atomic::{Ordering, compiler_fence};
33

44
use dora_asm::x64::Register;
55

0 commit comments

Comments
 (0)