pub const BASIC_CODE: &str = r#"package main
import "core:fmt"
main :: proc() {
fmt.println("Hellope!")
}
"#;
pub const MEM_TRACKING_CODE: &str = r#"package main
@(require) import "core:fmt"
@(require) import "core:log"
@(require) import "core:mem"
main :: proc() {
when ODIN_DEBUG {
context.logger = log.create_console_logger(lowest = log.Level.Debug)
defer log.destroy_console_logger(context.logger)
track: mem.Tracking_Allocator
mem.tracking_allocator_init(&track, context.allocator)
context.allocator = mem.tracking_allocator(&track)
defer {
if len(track.allocation_map) > 0 {
fmt.eprintf(
"=== %v allocations not freed: ===\n",
len(track.allocation_map),
)
for _, entry in track.allocation_map {
fmt.eprintf(
"- %v bytes @ %v\n",
entry.size,
entry.location,
)
}
}
if len(track.bad_free_array) > 0 {
fmt.eprintf(
"=== %v incorrect frees: ===\n",
len(track.bad_free_array),
)
for entry in track.bad_free_array {
fmt.eprintf("- %p @ %v\n", entry.memory, entry.location)
}
}
mem.tracking_allocator_destroy(&track)
}
}
}
"#;