@@ -29,10 +29,10 @@ use services::vm::VmService;
2929use dvm_cli:: config:: * ;
3030use dvm_cli:: init;
3131use futures:: join;
32- use dvm_info:: config:: InfoServiceConfig ;
32+ use dvm_info:: config:: { InfoServiceConfig , MemoryOptions } ;
3333use dvm_cli:: info_service:: create_info_service;
34-
35- const MODULE_CACHE : usize = 1000 ;
34+ use dvm_info :: memory_check :: MemoryChecker ;
35+ use runtime :: vm :: dvm :: Dvm ;
3636
3737/// Definance Virtual Machine
3838/// combined with Move compilation server
@@ -56,6 +56,9 @@ struct Options {
5656 #[ clap( flatten) ]
5757 info_service : InfoServiceConfig ,
5858
59+ #[ clap( flatten) ]
60+ memory_config : MemoryOptions ,
61+
5962 /// DataSource Server internet address.
6063 #[ clap(
6164 name = "Data-Source URI" ,
@@ -100,9 +103,10 @@ async fn main_internal(options: Options) -> Result<()> {
100103 // data-source client
101104 let ds = GrpcDataSource :: new ( options. ds , Some ( ds_term_rx) )
102105 . expect ( "Unable to instantiate GrpcDataSource." ) ;
103- let ds = ModuleCache :: new ( DsMeter :: new ( ds) , MODULE_CACHE ) ;
106+ let ds = ModuleCache :: new ( DsMeter :: new ( ds) , options. memory_config . module_cache ( ) ) ;
107+ let mem_checker = MemoryChecker :: new ( options. memory_config , vec ! [ Box :: new( ds. clone( ) ) ] ) ;
104108 // vm services
105- let vm_service = VmService :: new ( ds. clone ( ) , hrm) ;
109+ let vm_service = VmService :: new ( Dvm :: new ( ds. clone ( ) , Some ( mem_checker ) ) , hrm) ;
106110 // comp services
107111 let compiler_service = CompilerService :: new ( Compiler :: new ( ds) ) ;
108112 let metadata_service = MetadataService :: default ( ) ;
0 commit comments