Skip to content

Commit cde71de

Browse files
committed
RTS: address warnings and enable -Werror
1 parent fdf6c03 commit cde71de

File tree

5 files changed

+38
-22
lines changed

5 files changed

+38
-22
lines changed

gibbon-rts/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
CC := gcc
3030
AR := gcc-ar
31-
CFLAGS := -Wall -Wextra -Wpedantic -Wshadow -std=gnu11 -flto
31+
CFLAGS := -Wall -Wextra -Wpedantic -Wshadow -Werror -std=gnu11 -flto
3232
RSC := cargo
3333
RSFLAGS := -v
3434
VERBOSITY := 1

gibbon-rts/rts-c/gibbon_rts.c

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ GibSym gib_read_gensym_counter(void)
145145
#ifdef _GIBBON_POINTER
146146

147147
#ifdef _GIBBON_BUMPALLOC_HEAP
148-
#warning "Using bump allocator."
148+
#pragma message "Using bump allocator."
149149

150150
static __thread char *gib_global_ptr_bumpalloc_heap_ptr = (char *) NULL;
151151
static __thread char *gib_global_ptr_bumpalloc_heap_ptr_end = (char *) NULL;
@@ -706,7 +706,7 @@ double gib_sum_timing_array(GibVector *times)
706706

707707
#ifdef _GIBBON_BUMPALLOC_LISTS
708708
// #define _GIBBON_DEBUG
709-
#warning "Using bump allocator."
709+
#pragma message "Using bump allocator."
710710

711711
static __thread char *gib_global_list_bumpalloc_heap_ptr = (char *) NULL;
712712
static __thread char *gib_global_list_bumpalloc_heap_ptr_end = (char *) NULL;
@@ -1036,26 +1036,26 @@ void gib_print_gc_config(void) {
10361036
printf("C config\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
10371037

10381038
#if defined _GIBBON_GENGC && _GIBBON_GENGC == 0
1039-
#warning "Generational GC is disabled."
1039+
#pragma message "Generational GC is disabled."
10401040
printf("Generational GC is disabled.\n");
10411041
#else
1042-
#warning "Generational GC is enabled."
1042+
#pragma message "Generational GC is enabled."
10431043
printf("Generational GC is enabled.\n");
10441044
#endif
10451045

10461046
#if defined _GIBBON_EAGER_PROMOTION && _GIBBON_EAGER_PROMOTION == 0
1047-
#warning "Eager promotion is disabled."
1047+
#pragma message "Eager promotion is disabled."
10481048
printf("Eager promotion is disabled.\n");
10491049
#else
1050-
#warning "Eager promotion is enabled."
1050+
#pragma message "Eager promotion is enabled."
10511051
printf("Eager promotion is enabled.\n");
10521052
#endif
10531053

10541054
#if defined _GIBBON_SIMPLE_WRITE_BARRIER && _GIBBON_SIMPLE_WRITE_BARRIER == 0
1055-
#warning "Simple write barrier is disabled."
1055+
#pragma message "Simple write barrier is disabled."
10561056
printf("Simple write barrier is disabled.\n");
10571057
#else
1058-
#warning "Simple write barrier is enabled."
1058+
#pragma message "Simple write barrier is enabled."
10591059
printf("Simple write barrier is enabled.\n");
10601060
#endif
10611061

@@ -1316,8 +1316,8 @@ void gib_print_global_region_count(void)
13161316
*/
13171317

13181318
// Initialize nurseries, shadow stacks and generations.
1319-
static void gib_storage_initialize(void);
1320-
static void gib_storage_free(void);
1319+
UNUSED_IN_POINTER_BAK static void gib_storage_initialize(void);
1320+
UNUSED_IN_POINTER_BAK static void gib_storage_free(void);
13211321
static void gib_nursery_initialize(GibNursery *nursery, size_t nsize);
13221322
static void gib_nursery_free(GibNursery *nursery);
13231323
static void gib_oldgen_initialize(GibOldgen *oldgen);
@@ -1328,7 +1328,7 @@ static void gib_gc_stats_initialize(GibGcStats *stats);
13281328
static void gib_gc_stats_free(GibGcStats *stats);
13291329

13301330
// Initialize nurseries, shadow stacks and generations.
1331-
static void gib_storage_initialize(void)
1331+
UNUSED_IN_POINTER_BAK static void gib_storage_initialize(void)
13321332
{
13331333
if (gib_storage_initialized) {
13341334
return;
@@ -1339,7 +1339,7 @@ static void gib_storage_initialize(void)
13391339
gib_gc_stats_initialize(gib_global_gc_stats);
13401340

13411341
// Initialize nurseries.
1342-
int n;
1342+
uint64_t n;
13431343
gib_global_nurseries = (GibNursery *) gib_alloc(gib_global_num_threads *
13441344
sizeof(GibNursery));
13451345
for (n = 0; n < gib_global_num_threads; n++) {
@@ -1351,7 +1351,7 @@ static void gib_storage_initialize(void)
13511351
gib_oldgen_initialize(gib_global_oldgen);
13521352

13531353
// Initialize shadow stacks.
1354-
int ss;
1354+
uint64_t ss;
13551355
gib_global_read_shadowstacks =
13561356
(GibShadowstack *) gib_alloc(gib_global_num_threads *
13571357
sizeof(GibShadowstack));
@@ -1368,14 +1368,14 @@ static void gib_storage_initialize(void)
13681368
return;
13691369
}
13701370

1371-
static void gib_storage_free(void)
1371+
UNUSED_IN_POINTER_BAK static void gib_storage_free(void)
13721372
{
13731373
if (!gib_storage_initialized) {
13741374
return;
13751375
}
13761376

13771377
// Free nurseries.
1378-
int n;
1378+
uint64_t n;
13791379
for (n = 0; n < gib_global_num_threads; n++) {
13801380
gib_nursery_free(&(gib_global_nurseries[n]));
13811381
}
@@ -1386,7 +1386,7 @@ static void gib_storage_free(void)
13861386
gib_free(gib_global_oldgen);
13871387

13881388
// Free shadow-stacks.
1389-
int ss;
1389+
uint64_t ss;
13901390
for (ss = 0; ss < gib_global_num_threads; ss++) {
13911391
gib_shadowstack_free(&(gib_global_read_shadowstacks[ss]));
13921392
gib_shadowstack_free(&(gib_global_write_shadowstacks[ss]));
@@ -1599,6 +1599,7 @@ static void gib_gc_stats_free(GibGcStats *stats)
15991599
gib_free(stats);
16001600
}
16011601

1602+
#ifdef _GIBBON_GCSTATS
16021603
static void gib_gc_stats_print(GibGcStats *stats)
16031604
{
16041605
printf("\nGC statistics\n----------------------------------------\n");
@@ -1652,6 +1653,7 @@ static void gib_gc_stats_print(GibGcStats *stats)
16521653
printf("Skipover env inserts:\t\t %ld\n", stats->skipover_env_inserts);
16531654
printf("Root set size:\t\t\t %ld\n", stats->rootset_size);
16541655
}
1656+
#endif // ifdef _GIBBON_GCSTATS
16551657

16561658

16571659
/*
@@ -1929,7 +1931,7 @@ int gib_init(int argc, char **argv)
19291931
}
19301932
#endif
19311933

1932-
int got_numargs = argc; // How many numeric arguments have we got.
1934+
// int got_numargs = argc; // How many numeric arguments have we got.
19331935

19341936
int i;
19351937
for (i = 1; i < argc; ++i)

gibbon-rts/rts-c/gibbon_rts.h

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,16 @@ typedef uint64_t GibThreadId;
8080
#define ATTR_ALWAYS_INLINE __attribute__((always_inline))
8181
#define ATTR_HOT __attribute__((hot))
8282

83+
#ifdef _GIBBON_POINTER
84+
#define UNUSED_IN_POINTER_BAK __attribute__((unused))
85+
#else
86+
#define UNUSED_IN_POINTER_BAK
87+
#endif
88+
8389
#define LIKELY(x) __builtin_expect((bool) (x), 1)
8490
#define UNLIKELY(x) __builtin_expect((bool) (x), 0)
91+
#define IGNORE(x) (void) (x)
92+
8593

8694
/*
8795
* Inlining macros taken from GHC:
@@ -1069,9 +1077,9 @@ INLINE_HEADER void gib_indirection_barrier(
10691077
{
10701078

10711079
#if defined _GIBBON_SIMPLE_WRITE_BARRIER && _GIBBON_SIMPLE_WRITE_BARRIER == 1
1072-
#warning "Simple write barrier is enabled."
1080+
#pragma message "Simple write barrier is enabled."
10731081
#else
1074-
#warning "Simple write barrier is disabled."
1082+
#pragma message "Simple write barrier is disabled."
10751083
{
10761084
// Optimization: don't create long chains of indirection pointers.
10771085
GibPackedTag pointed_to_tag = *(GibPackedTag *) to;
@@ -1105,6 +1113,7 @@ INLINE_HEADER void gib_indirection_barrier(
11051113
// old-to-old indirections.
11061114

11071115
#if defined _GIBBON_GENGC && _GIBBON_GENGC == 0
1116+
IGNORE(datatype);
11081117
gib_add_old_to_old_indirection(from_footer, to_footer);
11091118
return;
11101119
#else

gibbon-rts/rts-ng/src/gc.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,9 @@ pub fn cleanup(
147147
(*((*oldgen).old_zct)).insert((*footer).reg_info);
148148
}
149149
}
150-
for reg_info in (*((*oldgen).old_zct)).drain() {
151-
// free_region((*reg_info).first_chunk_footer, null_mut())?;
150+
for _reg_info in (*((*oldgen).old_zct)).drain() {
151+
// Enable this again after ensuring that everything works.
152+
// // free_region((*reg_info).first_chunk_footer, null_mut())?;
152153
}
153154
}
154155
// Free ZCTs associated with the oldest generation.

gibbon-rts/rts-ng/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
//! Next generation runtime system for the Gibbon compiler.
22
3+
// Erroring on every warning is OK for now, but can be refined in the future:
4+
// https://rust-unofficial.github.io/patterns/anti_patterns/deny-warnings.html
5+
#![deny(warnings)]
6+
37
pub use ffi::c::*;
48
pub use ffi::rs::*;
59
pub use gc::ValueStats;

0 commit comments

Comments
 (0)