mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-22 20:40:18 +00:00
some fix
This commit is contained in:
parent
b4da713ac1
commit
857b798172
15
build_g.sh
15
build_g.sh
@ -2,19 +2,10 @@ set -e
|
||||
|
||||
python prebuild.py
|
||||
|
||||
SRC_C=$(find src/ -name "*.c")
|
||||
SRC_CPP=$(find src/ -name "*.cpp")
|
||||
SRC=$(find src/ -name "*.c")
|
||||
|
||||
COMMON_FLAGS="-Iinclude -O0 -Wfatal-errors -g -DDEBUG -DPK_ENABLE_OS=1" # -fsanitize=address,leak,undefined"
|
||||
|
||||
FLAGS_C="-std=c11 $COMMON_FLAGS"
|
||||
FLAGS_CPP="-std=c++17 -stdlib=libc++ -frtti $COMMON_FLAGS"
|
||||
FLAGS="-std=c11 -Iinclude -O0 -Wfatal-errors -g -DDEBUG -DPK_ENABLE_OS=1" # -fsanitize=address,leak,undefined"
|
||||
|
||||
echo "Compiling C files..."
|
||||
clang $FLAGS_C -c $SRC_C
|
||||
ar rcs libpocketpy_c.a *.o
|
||||
rm *.o
|
||||
clang $FLAGS $SRC src2/main.c -o main
|
||||
|
||||
echo "Compiling C++ files..."
|
||||
clang++ $FLAGS_CPP -o main src2/main.cpp $SRC_CPP libpocketpy_c.a
|
||||
rm libpocketpy_c.a
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include "pocketpy/objects/object.h"
|
||||
#include "pocketpy/objects/public.h"
|
||||
#include "pocketpy/common/config.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -17,7 +17,7 @@ typedef struct pkpy_ExceptionFrame {
|
||||
} pkpy_ExceptionFrame;
|
||||
|
||||
typedef struct pkpy_Exception {
|
||||
pk_StrName type;
|
||||
StrName type;
|
||||
pkpy_Str msg;
|
||||
bool is_re;
|
||||
|
||||
@ -29,7 +29,7 @@ typedef struct pkpy_Exception {
|
||||
c11_vector/*T=pkpy_ExceptionFrame*/ stacktrace;
|
||||
} pkpy_Exception;
|
||||
|
||||
void pkpy_Exception__ctor(pkpy_Exception* self, pk_StrName type);
|
||||
void pkpy_Exception__ctor(pkpy_Exception* self, StrName type);
|
||||
void pkpy_Exception__dtor(pkpy_Exception* self);
|
||||
void pkpy_Exception__stpush(pkpy_Exception* self, pkpy_SourceData_ src, int lineno, const char* cursor, const char* name);
|
||||
pkpy_Str pkpy_Exception__summary(pkpy_Exception* self);
|
||||
|
@ -32,7 +32,7 @@ PK_INLINE PyVar PyVar__fromobj(PyObject* obj){
|
||||
PyVar retval = {
|
||||
.type = obj->type,
|
||||
.is_ptr = true,
|
||||
._obj = obj;
|
||||
._obj = obj
|
||||
};
|
||||
return retval;
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "pocketpy/common/strname.h"
|
||||
#include "pocketpy/common/sstream.h"
|
||||
|
||||
void pkpy_Exception__ctor(pkpy_Exception* self, pk_StrName type){
|
||||
void pkpy_Exception__ctor(pkpy_Exception* self, StrName type){
|
||||
self->type = type;
|
||||
self->is_re = true;
|
||||
self->_ip_on_error = -1;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -40,7 +40,7 @@ void UnwindTarget__delete(UnwindTarget* self){
|
||||
}
|
||||
|
||||
Frame* Frame__new(Frame* f_back, const CodeObject* co, PyObject* module_, PyObject* function, PyVar* p0, PyVar* locals, const CodeObject* locals_co){
|
||||
static_assert(sizeof(Frame) <= kPoolFrameBlockSize);
|
||||
static_assert(sizeof(Frame) <= kPoolFrameBlockSize, "!(sizeof(Frame) <= kPoolFrameBlockSize)");
|
||||
Frame* self = PoolFrame_alloc();
|
||||
self->f_back = f_back;
|
||||
self->ip = (Bytecode*)co->codes.data - 1;
|
||||
|
@ -6,10 +6,12 @@ static unsigned char* pk_default_import_file(pk_VM* vm, const char* path){
|
||||
|
||||
static void pk_default_stdout(pk_VM* vm, const char* s){
|
||||
fprintf(stdout, "%s", s);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
static void pk_default_stderr(pk_VM* vm, const char* s){
|
||||
fprintf(stderr, "%s", s);
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
void pk_TypeInfo__ctor(pk_TypeInfo *self, StrName name, Type base, PyObject* obj, PyObject* module, bool subclass_enabled){
|
||||
@ -70,7 +72,7 @@ void pk_VM__ctor(pk_VM* self){
|
||||
|
||||
/* Init Builtin Types */
|
||||
// 0: unused
|
||||
pk_TypeInfo__ctor(c11_vector__emplace(&self->types), 0, 0, NULL, NULL);
|
||||
pk_TypeInfo__ctor(c11_vector__emplace(&self->types), 0, 0, NULL, NULL, false);
|
||||
#define validate(t, expr) if(t != (expr)) abort()
|
||||
|
||||
validate(tp_object, pk_VM__new_type(self, "object", 0, NULL, true));
|
||||
|
@ -3,7 +3,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "pocketpy/objects/public.h"
|
||||
|
||||
#define DICT_MAX_LOAD 0.75
|
||||
#define DICT_HASH_NEXT(h) ((h) * 5 + 1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user