Compare commits

...

2 commits

Author SHA1 Message Date
2bb8fa903f Add missing dotfiles 2026-10-20 11:22:54 +00:00
e288f4e098 Make Test class static 2026-10-20 11:22:40 +00:00
3 changed files with 33 additions and 22 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

10
.gitignore vendored Normal file
View file

@ -0,0 +1,10 @@
# Nix
result*
# Misc
.direnv
# CMake
build/
.cache/

View file

@ -7,30 +7,30 @@
static struct Object* static_method(struct Object* self); static struct Object* static_method(struct Object* self);
static struct Object* instance_method(struct Object* self); static struct Object* instance_method(struct Object* self);
int main() struct Method Test_meta_methods[] = {
{
struct Method Test_meta_methods[] = {
{ .sel = "staticMethod", .impl = static_method }, { .sel = "staticMethod", .impl = static_method },
}; };
struct Class TestMetaClass = { struct Class TestMetaClass = {
.class = &TestMetaClass, .class = &TestMetaClass,
.name = "Test(meta)", .name = "Test(meta)",
.super = &MObjectMetaClass, .super = &MObjectMetaClass,
.methods = Test_meta_methods, .methods = Test_meta_methods,
.methods_count = sizeof(Test_meta_methods) / sizeof(struct Method), .methods_count = sizeof(Test_meta_methods) / sizeof(struct Method),
}; };
struct Method Test_methods[] = { struct Method Test_methods[] = {
{ .sel = "instanceMethod", .impl = instance_method }, { .sel = "instanceMethod", .impl = instance_method },
}; };
struct Class Test = { struct Class Test = {
.class = &TestMetaClass, .class = &TestMetaClass,
.name = "Test", .name = "Test",
.super = &MObject, .super = &MObject,
.methods = Test_methods, .methods = Test_methods,
.methods_count = sizeof(Test_methods) / sizeof(struct Method), .methods_count = sizeof(Test_methods) / sizeof(struct Method),
}; };
int main()
{
msg_send((struct Object*)&Test, "staticMethod"); msg_send((struct Object*)&Test, "staticMethod");
struct Object* obj = msg_send((struct Object*)&Test, "alloc"); struct Object* obj = msg_send((struct Object*)&Test, "alloc");