Skip to content

Commit dffa461

Browse files
More precise time measures (bootstrap)
1 parent 1fd7c57 commit dffa461

4 files changed

Lines changed: 27 additions & 7 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ libuv/libuv-v1.44.2/
227227
libuv/libuv-v1.47.0/
228228
libuv/libuv-v1.48.0/
229229
libuv/libuv-v1.49.2/
230+
libuv/libuv-v1.51.0/
230231

231232
# xlib
232233
xlib/include/

runtime/Clib/csystem.c

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/*=====================================================================*/
2-
/* serrano/prgm/project/bigloo/flt/runtime/Clib/csystem.c */
2+
/* serrano/prgm/project/bigloo/bigloo/runtime/Clib/csystem.c */
33
/* ------------------------------------------------------------- */
44
/* Author : Manuel Serrano */
55
/* Creation : Wed Jan 20 08:45:23 1993 */
6-
/* Last change : Mon Nov 18 15:44:07 2024 (serrano) */
7-
/* Copyright : 2002-24 Manuel Serrano */
6+
/* Last change : Thu Jul 3 12:55:19 2025 (serrano) */
7+
/* Copyright : 2002-25 Manuel Serrano */
88
/* ------------------------------------------------------------- */
99
/* System interface */
1010
/*=====================================================================*/
@@ -535,6 +535,10 @@ bgl_time(obj_t thunk) {
535535

536536
return BGL_PROCEDURE_CALL0(thunk);
537537
#else
538+
# if (BGL_HAVE_TIMEVAL)
539+
struct timeval tv1, tv2;
540+
# endif
541+
538542
static long ctick = 0;
539543
obj_t env = BGL_CURRENT_DYNAMIC_ENV();
540544
struct tms buf1, buf2;
@@ -544,13 +548,29 @@ bgl_time(obj_t thunk) {
544548
if (!ctick) ctick = sysconf(_SC_CLK_TCK);
545549

546550
t1 = times(&buf1);
551+
# if (BGL_HAVE_TIMEVAL)
552+
gettimeofday(&tv1, 0);
553+
# endif
554+
547555
res = BGL_PROCEDURE_CALL0(thunk);
556+
557+
# if (BGL_HAVE_TIMEVAL)
558+
gettimeofday(&tv2, 0);
559+
# endif
548560
t2 = times(&buf2);
549561

550562
BGL_ENV_MVALUES_NUMBER_SET(env, 4);
551563

552564
# define BTICK(v) BINT((v) * 1000 / ctick)
565+
# if (BGL_HAVE_TIMEVAL)
566+
{
567+
BGL_LONGLONG_T ms1 = (BGL_LONGLONG_T)(tv1.tv_sec) * 1000 + (BGL_LONGLONG_T)(tv1.tv_usec / 1000);
568+
BGL_LONGLONG_T ms2 = (BGL_LONGLONG_T)(tv2.tv_sec) * 1000 + (BGL_LONGLONG_T)(tv2.tv_usec / 1000);
569+
BGL_ENV_MVALUES_VAL_SET(env, 1, BINT(ms2 - ms1));
570+
}
571+
# else
553572
BGL_ENV_MVALUES_VAL_SET(env, 1, BTICK(t2 - t1));
573+
# endif
554574
BGL_ENV_MVALUES_VAL_SET(env, 2, BTICK(buf2.tms_stime - buf1.tms_stime));
555575
BGL_ENV_MVALUES_VAL_SET(env, 3, BTICK((buf2.tms_cutime - buf1.tms_cutime)
556576
+ (buf2.tms_utime - buf1.tms_utime)));

runtime/Include/bigloo_real_flt.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/* ------------------------------------------------------------- */
44
/* Author : Manuel Serrano */
55
/* Creation : Sun Mar 6 07:07:32 2016 */
6-
/* Last change : Wed Jul 2 18:07:52 2025 (serrano) */
6+
/* Last change : Thu Jul 3 12:27:41 2025 (serrano) */
77
/* Copyright : 2016-25 Manuel Serrano */
88
/* ------------------------------------------------------------- */
99
/* Bigloo FLOATING POINT TAGGING reals */
@@ -165,7 +165,6 @@ INLINE bool BGL_TAGGED_REALP(obj_t _o) {
165165
(BGL_TAGGED_REALP(o) && BGL_TAGGED_REALP(p))
166166
#elif BGL_TAGGING == BGL_TAGGING_FL1
167167
// ---------------------------------
168-
// ((o>>59)+13)>>1
169168
# define BGL_TAGGED_REALP(o) \
170169
(((long)o & TAG_MASK) == TAG_REALZ)
171170
# define BGL_TAGGED_REALSP(o, p) \

runtime/Include/bigloo_real_heap.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/* ------------------------------------------------------------- */
44
/* Author : Manuel Serrano */
55
/* Creation : Sun Mar 6 07:07:32 2016 */
6-
/* Last change : Wed Jul 2 06:04:43 2025 (serrano) */
6+
/* Last change : Thu Jul 3 11:19:47 2025 (serrano) */
77
/* Copyright : 2016-25 Manuel Serrano */
88
/* ------------------------------------------------------------- */
99
/* Bigloo REALs */
@@ -54,7 +54,7 @@ struct bgl_real {
5454
# define BGL_CREATE_REAL(aux, flonum) \
5555
static struct { double real; } aux = { flonum }
5656

57-
# define FLONUMP(c) ((c && ((((long)c) & TAG_MASK) == TAG_REAL)))
57+
# define FLONUMP(c) BGL_TAGGED_PTRP(c, TAG_REAL, TAG_MASK)
5858
# define REALP(c) FLONUMP(c)
5959

6060
# define BGL_REAL_SET(o, v) ((REAL(o).val = v), o)

0 commit comments

Comments
 (0)