@@ -206,6 +206,24 @@ VAL idris_time() {
206 return MKBIGI(t);
206 return MKBIGI(t);
209+VAL idris_clock(VM* vm) {
212+ idris_constructor(result, vm, 0, 2, 0);
213+ idris_setConArg(result, 0, MKBIGI(0));
214+ idris_setConArg(result, 1, MKBIGI(0));
217+ // We're not checking the result here, which is of course bad, but
218+ // CLOCK_REALTIME is required by POSIX at least!
219+ clock_gettime(CLOCK_REALTIME, &ts);
220+ idris_constructor(result, vm, 0, 2, 0);
221+ idris_setConArg(result, 0, MKBIGI(ts.tv_sec));
222+ idris_setConArg(result, 1, MKBIGI(ts.tv_nsec));
209VAL idris_mkFileError(VM* vm) {
227VAL idris_mkFileError(VM* vm) {
210 VAL result;
228 VAL result;
211 switch(errno) {
229 switch(errno) {