From 1fddc239e7b55612f8f9e2289255e66e9e1aa8d7 Mon Sep 17 00:00:00 2001 From: Igor Goryachev Date: Tue, 2 Jul 2024 13:32:29 +0300 Subject: [PATCH] Preserve source when building with deterministic option --- lib/compiler/src/compile.erl | 2 ++ lib/compiler/test/compile_SUITE.erl | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl index 04f13f3080d5..8ab193e8a239 100644 --- a/lib/compiler/src/compile.erl +++ b/lib/compiler/src/compile.erl @@ -2588,6 +2588,8 @@ compile_info(File, CompilerOpts, Opts) -> case paranoid_absname(File) of [_|_] = Source when not IsSlim, not IsDeterministic -> [{source,Source} | Info0]; + [_|_] = Source when IsDeterministic -> + [{source,filename:basename(Source)} | Info0]; _ -> Info0 end, diff --git a/lib/compiler/test/compile_SUITE.erl b/lib/compiler/test/compile_SUITE.erl index e0791172c440..556b19135e6a 100644 --- a/lib/compiler/test/compile_SUITE.erl +++ b/lib/compiler/test/compile_SUITE.erl @@ -159,7 +159,7 @@ file_1(Config) when is_list(Config) -> %% Test option 'deterministic'. {ok,simple} = compile:file(Simple, [deterministic]), {module,simple} = c:l(simple), - [{version,_}] = simple:module_info(compile), + [{version,_},{source,"simple.erl"}] = simple:module_info(compile), true = code:delete(simple), false = code:purge(simple), @@ -172,7 +172,7 @@ file_1(Config) when is_list(Config) -> {DetPath, DetTarget} = get_files(Config, Det, "det_target"), {ok,Det,DetCode} = compile:file(DetPath, [binary]), {module,Det} = code:load_binary(Det, "", DetCode), - [{version,_}] = Det:module_info(compile), + [{version,_},{source,"deterministic_module.erl"}] = Det:module_info(compile), true = code:delete(Det), false = code:purge(Det),