@@ -10,7 +10,7 @@ use console::style;
10
10
use indicatif:: { ProgressBar , ProgressStyle } ;
11
11
use log:: { debug, error, info, log_enabled, Level :: Info } ;
12
12
use rayon:: prelude:: * ;
13
- use std:: fs;
13
+ use std:: fs:: { self , File } ;
14
14
use std:: io:: { stdout, Write } ;
15
15
use std:: path:: { Path , PathBuf } ;
16
16
use std:: process:: Command ;
@@ -215,19 +215,28 @@ fn get_dep_modules(
215
215
fn gen_mlmap (
216
216
package : & package_tree:: Package ,
217
217
namespace : & str ,
218
- modules : & Vec < String > ,
218
+ depending_modules : AHashSet < String > ,
219
219
root_path : & str ,
220
220
) -> String {
221
221
let build_path_abs = helpers:: get_build_path ( root_path, & package. name ) ;
222
222
// we don't really need to create a digest, because we track if we need to
223
223
// recompile in a different way but we need to put it in the file for it to
224
224
// be readable.
225
- let mut sorted_modules = modules. clone ( ) ;
226
- sorted_modules. sort ( ) ;
227
- let digest = "randjbuildsystem" . to_owned ( ) + "\n " + & sorted_modules. join ( "\n " ) ;
228
- let file = build_path_abs. to_string ( ) + "/" + namespace + ".mlmap" ;
229
- fs:: write ( & file, digest) . expect ( "Unable to write mlmap" ) ;
230
- file. to_string ( )
225
+
226
+ let path = build_path_abs. to_string ( ) + "/" + namespace + ".mlmap" ;
227
+ let mut file = File :: create ( & path) . expect ( "Unable to create mlmap" ) ;
228
+
229
+ file. write_all ( b"randjbuildsystem\n " as & [ u8 ] )
230
+ . expect ( "Unable to write mlmap" ) ;
231
+
232
+ let mut modules = Vec :: from_iter ( depending_modules. to_owned ( ) ) ;
233
+ modules. sort ( ) ;
234
+ for module in modules {
235
+ file. write_all ( module. as_bytes ( ) ) . unwrap ( ) ;
236
+ file. write_all ( b"\n " ) . unwrap ( ) ;
237
+ }
238
+
239
+ path. to_string ( )
231
240
}
232
241
233
242
pub fn generate_asts < ' a > (
@@ -508,7 +517,7 @@ pub fn parse_packages(
508
517
let mlmap = gen_mlmap (
509
518
& package,
510
519
namespace,
511
- & Vec :: from_iter ( depending_modules. to_owned ( ) ) ,
520
+ depending_modules,
512
521
project_root,
513
522
) ;
514
523
0 commit comments