###IDEA keep PMC pointers in explicit shadow-stack, a linked list of frames
###IMPLEMENTATION
struct frame
{
struct frame *prev;
size_t size;
PMC **pmcs;
$ prove --verbose t/profiling/profiling.t | |
t/profiling/profiling....1..13 | |
Cannot take substr outside string | |
current instr.: 'parrot;ProfTest;PIRProfile;_block1052' pc 875 (runtime/parrot/library/ProfTest/PIRProfile.pir:364) | |
called from Sub 'parrot;ProfTest;PIRProfile;_block1048' pc 821 (runtime/parrot/library/ProfTest/PIRProfile.pir:27) | |
called from Sub 'parrot;ProfTest;PIRProfile;make_line_hash' pc 669 (runtime/parrot/library/ProfTest/PIRProfile.pir:278) | |
called from Sub 'parrot;ProfTest;PIRProfile;_block1027' pc 545 (runtime/parrot/library/ProfTest/PIRProfile.pir:232) | |
called from Sub 'parrot;ProfTest;PIRProfile;build_profile_array' pc 488 (runtime/parrot/library/ProfTest/PIRProfile.pir:212) | |
called from Sub 'parrot;ProfTest;PIRProfile;new' pc 226 (runtime/parrot/library/ProfTest/PIRProfile.pir:100) | |
called from Sub '_block1000' pc 180 ((file unknown):61916563) (t/profiling/profiling.t:17) |
###IDEA keep PMC pointers in explicit shadow-stack, a linked list of frames
###IMPLEMENTATION
struct frame
{
struct frame *prev;
size_t size;
PMC **pmcs;
.def _m0_core; | |
.scl 2; | |
.type 32; | |
.endef | |
.text | |
.globl _m0_core | |
.align 16, 0x90 | |
_m0_core: # @m0_core | |
# BB#0: # %INIT | |
pushl %ebp |
#include <math.h> | |
/* ANSI fallback, *might* fail on exotic platforms */ | |
#ifndef INFINITY | |
#define INFINITY ((float)HUGE_VAL) | |
#endif | |
#ifndef NAN | |
#define NAN (INFINITY - INFINITY) | |
#endif |
src/string/api.c:415:39: warning: cast from 'char *' to 'INTVAL *' (aka 'long long *') increases required alignment from 1 to 8 [-Wcast-align] | |
INTVAL * const buffer_flags = Buffer_bufflagsptr(d); | |
^~~~~~~~~~~~~~~~~~~~~ | |
./include\parrot/pobj.h:73:32: note: expanded from: | |
#define Buffer_bufflagsptr(b) ((INTVAL *)Buffer_bufprolog(b)) | |
^ | |
src/string/api.c:2812:1: warning: control may reach end of non-void function [-Wreturn-type] | |
} | |
^ | |
src/string/api.c:2842:1: warning: control may reach end of non-void function [-Wreturn-type] |
@echo off | |
setlocal | |
if "%CYGWIN_ROOT%" == "" set CYGWIN_ROOT=C:\cygwin | |
if not exist "%CYGWIN_ROOT%"\ ( | |
echo directory %CYGWIN_ROOT% does not exist | |
echo please set the variable CYGWIN_ROOT | |
exit /B 1 | |
) |
diff --git a/config/auto/sizes.pm b/config/auto/sizes.pm | |
index f42aa8e..30a369d 100644 | |
--- a/config/auto/sizes.pm | |
+++ b/config/auto/sizes.pm | |
@@ -265,6 +265,8 @@ END | |
else { | |
$typesref->{intval} = $intptr; | |
$conf->data->set( iv => $intptr ); | |
+ $typesref->{opcode} = $intptr; | |
+ $conf->data->set( opcode_t => $intptr ); |
#ifndef PARROT_H_ | |
#define PARROT_H_ | |
#include <stddef.h> | |
// short names so we don't have to type Parrot_ everywhere | |
#define PInt Parrot_Int | |
#define PNum Parrot_Num | |
// ... |
#define NAMESPACE_SOURCE | |
#include "foo.h" |
diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in | |
index 230720d..3cd3e77 100644 | |
--- a/tools/build/Makefile.in | |
+++ b/tools/build/Makefile.in | |
@@ -952,6 +952,7 @@ $(OPS_DIR)/$(BIGINT_OPS)$(LOAD_EXT): $(OPS_DIR)/$(BIGINT_OPS_SOURCE) $(LIBTOMMAT | |
cd src/6model/reprs && $(CC) -c @cc_o_out@P6bigint$(O) -I../../../$(PMC_DIR) -I../../../3rdparty/libtommath $(CINCLUDES) $(CFLAGS) P6bigint.c | |
cd $(OPS_DIR) && $(LD) @ld_out@$(BIGINT_OPS)$(LOAD_EXT) $(BIGINT_OPS)$(O) ../../3rdparty/libtommath/*$(O) ../6model/reprs/P6bigint$(O) $(LINKARGS) | |
+$(DYNCALL_BIN): CFLAGS := $(CFLAGS) -w | |
$(DYNCALL_BIN): |