mirror of
https://github.com/urbit/shrub.git
synced 2024-12-19 16:51:42 +03:00
vere: adds --auto-meld for play subcommand
This commit is contained in:
parent
3843c6090f
commit
a7880717e3
@ -1788,9 +1788,11 @@ _cw_play(c3_i argc, c3_c* argv[])
|
|||||||
c3_i ch_i, lid_i;
|
c3_i ch_i, lid_i;
|
||||||
c3_w arg_w;
|
c3_w arg_w;
|
||||||
c3_o ful_o = c3n;
|
c3_o ful_o = c3n;
|
||||||
|
c3_o mel_o = c3n;
|
||||||
|
|
||||||
static struct option lop_u[] = {
|
static struct option lop_u[] = {
|
||||||
{ "loom", required_argument, NULL, c3__loom },
|
{ "loom", required_argument, NULL, c3__loom },
|
||||||
|
{ "auto-meld", no_argument, NULL, 4 },
|
||||||
{ "no-demand", no_argument, NULL, 6 },
|
{ "no-demand", no_argument, NULL, 6 },
|
||||||
{ "full", required_argument, NULL, 'f' },
|
{ "full", required_argument, NULL, 'f' },
|
||||||
{ "replay-to", no_argument, NULL, 'n' },
|
{ "replay-to", no_argument, NULL, 'n' },
|
||||||
@ -1801,6 +1803,10 @@ _cw_play(c3_i argc, c3_c* argv[])
|
|||||||
|
|
||||||
while ( -1 != (ch_i=getopt_long(argc, argv, "fn:", lop_u, &lid_i)) ) {
|
while ( -1 != (ch_i=getopt_long(argc, argv, "fn:", lop_u, &lid_i)) ) {
|
||||||
switch ( ch_i ) {
|
switch ( ch_i ) {
|
||||||
|
case 4: { // auto-meld
|
||||||
|
mel_o = c3y;
|
||||||
|
} break;
|
||||||
|
|
||||||
case 6: { // no-demand
|
case 6: { // no-demand
|
||||||
u3_Host.ops_u.map = c3n;
|
u3_Host.ops_u.map = c3n;
|
||||||
u3C.wag_w |= u3o_no_demand;
|
u3C.wag_w |= u3o_no_demand;
|
||||||
@ -1857,6 +1863,10 @@ _cw_play(c3_i argc, c3_c* argv[])
|
|||||||
//
|
//
|
||||||
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock
|
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock
|
||||||
|
|
||||||
|
if ( c3y == mel_o ) {
|
||||||
|
u3C.wag_w |= u3o_auto_meld;
|
||||||
|
}
|
||||||
|
|
||||||
u3C.wag_w |= u3o_hashless;
|
u3C.wag_w |= u3o_hashless;
|
||||||
u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
|
u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
|
||||||
u3C.slog_f = _cw_play_slog;
|
u3C.slog_f = _cw_play_slog;
|
||||||
|
@ -22,16 +22,17 @@
|
|||||||
** _check flags are set inside u3 and heard outside it.
|
** _check flags are set inside u3 and heard outside it.
|
||||||
*/
|
*/
|
||||||
enum u3o_flag { // execution flags
|
enum u3o_flag { // execution flags
|
||||||
u3o_debug_ram = 1 << 0, // debug: gc
|
u3o_debug_ram = 1 << 0, // debug: gc
|
||||||
u3o_debug_cpu = 1 << 1, // debug: profile
|
u3o_debug_cpu = 1 << 1, // debug: profile
|
||||||
u3o_check_corrupt = 1 << 2, // check: gc memory
|
u3o_check_corrupt = 1 << 2, // check: gc memory
|
||||||
u3o_check_fatal = 1 << 3, // check: unrecoverable
|
u3o_check_fatal = 1 << 3, // check: unrecoverable
|
||||||
u3o_verbose = 1 << 4, // be remarkably wordy
|
u3o_verbose = 1 << 4, // be remarkably wordy
|
||||||
u3o_dryrun = 1 << 5, // don't touch checkpoint
|
u3o_dryrun = 1 << 5, // don't touch checkpoint
|
||||||
u3o_quiet = 1 << 6, // disable ~&
|
u3o_quiet = 1 << 6, // disable ~&
|
||||||
u3o_hashless = 1 << 7, // disable hashboard
|
u3o_hashless = 1 << 7, // disable hashboard
|
||||||
u3o_trace = 1 << 8, // enables trace dumping
|
u3o_trace = 1 << 8, // enables trace dumping
|
||||||
u3o_no_demand = 1 << 9 // disables demand paging
|
u3o_auto_meld = 1 << 9, // enables meld under pressure
|
||||||
|
u3o_no_demand = 1 << 10 // disables demand paging
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Globals.
|
/** Globals.
|
||||||
|
@ -235,12 +235,12 @@ u3_mars_play(u3_mars* mar_u, c3_d eve_d)
|
|||||||
|
|
||||||
// XX pack before meld?
|
// XX pack before meld?
|
||||||
//
|
//
|
||||||
// if ( u3C.wag_w & u3o_auto_meld ) {
|
if ( u3C.wag_w & u3o_auto_meld ) {
|
||||||
// u3a_print_memory(stderr, "mars: meld: gained", u3u_meld());
|
u3a_print_memory(stderr, "mars: meld: gained", u3u_meld());
|
||||||
// }
|
}
|
||||||
// else {
|
else {
|
||||||
u3a_print_memory(stderr, "mars: pack: gained", u3m_pack());
|
u3a_print_memory(stderr, "mars: pack: gained", u3m_pack());
|
||||||
// }
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
// XX handle any specifically?
|
// XX handle any specifically?
|
||||||
|
Loading…
Reference in New Issue
Block a user