diff --git a/Makefile b/Makefile index 228496c5d..41cccb6c2 100644 --- a/Makefile +++ b/Makefile @@ -283,7 +283,9 @@ ifneq ($(USE_LIBBACKTRACE), 0) build/generate_makefile: | libbacktrace endif build/generate_makefile: tools/generate_makefile.nim | deps-common - $(ENV_SCRIPT) nim c -o:$@ $(NIM_PARAMS) tools/generate_makefile.nim + echo -e $(BUILD_MSG) "$@" && \ + $(ENV_SCRIPT) nim c -o:$@ $(NIM_PARAMS) tools/generate_makefile.nim && \ + echo -e $(BUILD_END_MSG) "$@" # GCC's LTO parallelisation is able to detect a GNU Make jobserver and get its # maximum number of processes from there, but only if we use the "+" prefix. diff --git a/beacon_chain/beacon_clock.nim b/beacon_chain/beacon_clock.nim index f6fae084b..047051288 100644 --- a/beacon_chain/beacon_clock.nim +++ b/beacon_chain/beacon_clock.nim @@ -81,7 +81,12 @@ func toSlot*(c: BeaconClock, t: Time): tuple[afterGenesis: bool, slot: Slot] = c.toBeaconTime(t).toSlot() func toBeaconTime*(s: Slot, offset = Duration()): BeaconTime = - BeaconTime(seconds(int64(uint64(s) * SECONDS_PER_SLOT)) + offset) + # BeaconTime/Duration stores nanoseconds, internally + const maxSlot = (not 0'u64 div 2 div SECONDS_PER_SLOT div 1_000_000_000).Slot + var slot = s + if slot > maxSlot: + slot = maxSlot + BeaconTime(seconds(int64(uint64(slot) * SECONDS_PER_SLOT)) + offset) proc now*(c: BeaconClock): BeaconTime = ## Current time, in slots - this may end up being less than GENESIS_SLOT(!) diff --git a/vendor/nimbus-build-system b/vendor/nimbus-build-system index e7694f16c..2b097ec86 160000 --- a/vendor/nimbus-build-system +++ b/vendor/nimbus-build-system @@ -1 +1 @@ -Subproject commit e7694f16ceccd7c98ecb6870263025018b7d37b3 +Subproject commit 2b097ec86aead0119c5e6bfff8502c3948a1ceaf