Late-bound invocation in Affe

I have finished removing Lua from Kaffeeklatsch and have enhanced Affe with the ability to bind field, property, and method calls at runtime. I noticed this gap when rewriting some of the key binding scripts; where I could just set a field before, my compiler threw an exception since it could not find the field…

Kaffeeklatsch teaser

I got Kaffeeklatsch back out of the toy box the other day and started integrating the Affe compiler into it. The goal is to remove Lua entirely, as it’s an unmanaged dependency and has been giving some odd errors as of late, crashing mono after a few seconds. The SuperScope effect has been completely converted…

This week

All in all this was a pretty good week. My new job has been a lot of fun and it feels good to finally have a job where my skills are being used. The team has been very welcoming and are fun to work with. My computer is back alive too… actually it was sometime…

General update

My computer should be working by the end of the week. Turns out the motherboard is dead, so I’m getting a new system: AMD 64 X2 2.8GHz. $347.24 later and let’s hope nothing else fried. My right wrist is also not working so well. I’m taking an anti-inflammatory and have it in a brace. It…

Another one bites the dust

Seems my computer decided I’ve hacked enough on WikiBench this week. This morning I smelled something odd, and after checking my email noticed that my CPU temperature was 84C. I usually push 80C when listening to music or watching video, but when it’s been idle 50C is more normal. So I powered down and poked…

Facebook Application Smashing

A friend and I are starting a new blog to expose vulnerabilities in Facebook applications. Since Facebook has a reputation of being secure, people seem to trust whatever applications will integrate with it. However, careless coding by third parties can allow all kinds of attacks, some of which can result in data theft. Hopefully this…

I’m running out of title ideas

But not motivation to code. Since my last post, the following changes have been made to Affe: The AffeCompiler class has been split into two classes. AffeCompiler stores information about the configuration (host type and symbol table) and passes copies to AffeCompilerState for actual compilation. This allows the host class information to be cached when…

CategoriesC#

More Affe hackery

Today I added: Variable persistence. If a field of type ScriptState is tagged [AffeBound] on the host class, it will be used to store the state of all of the variables local to the script. If no such field is found, no state preserving IL will be emitted. Bound methods can now return anything, but…

CategoriesC#

Affe evolves (Get it? It’s a pun.)

Well, the plan was to have Affe be a simple language. I guess it still is, but I’ve been adding support for many C-style language features and tweaking other features over the past day. Specifically, the following: Added if/else support, with the same nesting rules as C. Added the following operators: ! (boolean not) ==…

CategoriesC#

Affe

Introducing my new CLI language, Affe. While not exactly flexible, the language will be useful to me. Since the goal was to have an expression-evaluating language that targets DynamicMethod instead of Assembly, it’s not used the same way most other languages are. It cannot be used to define subroutines or manipulate objects. In fact the…

CategoriesC#