I've decided to let my gamedev subscription lapse. The main thing I used it for was for this sounding board to discuss my personal programming projects. It's been a few months since I last posted, and over a year since I've done any actual game related discussion. And even over the years I never re…
My vacation is over. It's useful to remind myself every so often why I don't travel and hate people. I did take some time and think about what I wanted to use my spare time for. In the end, I decided to use it for whatever the hell I want. So I'm going to try to do a quickie rewrite of Tangent with…
I realized the other day while working on something barely non-trivial in Tangent just how shoddy the performance is. Memory usage, leaking, actual execution speed... And there's not a few things that are just bleh in the project itself. Combined with the lack of actual active interest by anyone w…
I'm looking to do a little reworking in the Tangent syntax, parser and compiler. Right now there's a little too many exceptional cases. The main candidates for removal are properties and indexers. They'll still exist, but will be done in the phrase style. No more special cases.
The first step is don…
The first step is don…
It took a week of dirty dirty hacks, but I got that not example working from the last post. I'm sure I broke 2-3 things somewhere, and it runs like a dog, but it works. Oh, and it's far more ugly and verbose than I'd like. The final working test code:
public static generic(Exists P)
not( P infix …
Yet more motivation yesterday, so more Tangent advances. That, and the example code today is pretty sexy so stick around!
The first minor fix was finishing off the last little bug with generics. The basic stuff (generic fields in a type, generic parameters inferred in a method, method referring to t…
The first minor fix was finishing off the last little bug with generics. The basic stuff (generic fields in a type, generic parameters inferred in a method, method referring to t…
Yet more motivation yesterday, so more Tangent advances. That, and the example code today is pretty sexy so stick around!
The first minor fix was finishing off the last little bug with generics. The basic stuff (generic fields in a type, generic parameters inferred in a method, method referring to t…
The first minor fix was finishing off the last little bug with generics. The basic stuff (generic fields in a type, generic parameters inferred in a method, method referring to t…
Yet more time yesterday, so more work into generic methods. On the slate was type parameters, using generic references as the return type and resending the generic to another generic. The example code is fairly simple today; a in-source re-creation of the C# default keyword.
Remember that Exists is …
Remember that Exists is …
Had some time yesterday, and more importantly some motivation. So continuing along towards reusable user-defined properties, I set into making generic methods work. The type inference had been done for a while (so I thought!) so this work mostly involved doing proper name resolution, and providing …
I'm not sure what the deal is with my new car. It must look fast or something. I've gotten pulled over for speeding more times in the past week with the new car than I did in 9 years with the old. Warnings only thankfully. It's not as though I'm driving any differently. Seriously troopers, it's pro…
Part 1
The change so that private fields get their own storage is finished. I need to review some of the other visibility related things (name lookup for standalone fields, method dispatch) to finish that snippet of changes. Then will be a release.
A nice side effect of this private field storage cha…
The change so that private fields get their own storage is finished. I need to review some of the other visibility related things (name lookup for standalone fields, method dispatch) to finish that snippet of changes. Then will be a release.
A nice side effect of this private field storage cha…
Sorry for the lack of updates. My car died the end of last week, so a lot of my time went to procuring and then enjoying a new car. To be honest, mostly to the enjoyment; buying it was quick and painless. 2009 Impreza 5-door (non-WRX) for those curious. It is a retired rental car, so I got it at a …
The first part of my bulldozer refactoring is complete. The core library for Tangent was a mess because I just added things along as I went. Plus I'm lazy and don't have great practices even when I'm not lazy. As a result the core library was 7200 lines of code across a mere 8 files. Bleh! Even I h…
After exceptions work, the next step is the using block. The syntax is slightly different from C#. You can't have two elements in a using block (I forgot/didn't know you could even do that). And you can't just put a single expression after the using bit. Only the actual block, or another using segm…
Spent some time last night implementing exceptions. Nothing too special here. try/throw/catch/finally as they exist in C#. Under the hood, I just use the existing exception mechanism to do the delivery, and wrap exceptions so that the runtime can distinguish between exceptions raised in the runtime…
Dictionaries are now iterable in working code. .NET reflection is odd when it deals with stuff that is generic, but does not itself contain the generic parameters. It never really seems to refer to the source of the parameter, and once bound you can't really tell that one was there. This didn't int…
I think that I'm going to do a little polish/bugfixes for an intermediary release. Then there's going to be a pile of refactoring that needs to be done. After that I think that I might aim to get Tangent (optionally) compiling into C# source rather than the current hacky VM. The VM is dog slow, alb…
The documentation process continues. I went through a good number of the Rosetta Code entries, and created Tangent example code wiki entries for them. There's now about 8 times the example code entries for random programmers to view (even if most of them a simple, isolated feature examples).
Busy weekend. Took some time to update and flesh out the documentation, finishing out statements. As always, feedback from various levels of programmers is helpful.
I took some time tonight to nuke the last showstopper bugs so that I could make a midpoint release of Tangent. There's still plenty of bugs, but it'd been too long since a release. Not that anyone is downloading it, but one less excuse.
This release adds:
- A tiny command line compiler to the package…
This release adds:
- A tiny command line compiler to the package…
Not much Tangent work recently. Partly I've been demotivated by work demotivation. Partly I've been caught up in a game playing swing. Partly, I've been dreading a bug that I found. The reference code is a slightly modified version of the dice example app:
public class RollOfDice{
public delegate R…
I recently got back into playing Magic: the Gathering after some years away. The game has improved greatly since my departure, so kudos there but not what prompts a journal entry today.
Something I found out about today was this article by one of the card designers that describes the three archetyp…
Something I found out about today was this article by one of the card designers that describes the three archetyp…
The example code below (plus one semi-colon) now works. A few other things now do not work, and I'm sure to have created a slew of bugs by just hacking stuff until this works. But it should be a net gain I think... questions, criticisms and the such about the last post's code certainly welcome.
I'm…
I'm…
Got to do a little work on the dice example tonight. To me, it was pretty straightforward to construct the classes/methods to make the tiny DSL beginnings like I wanted. Not sure if that will translate well to other programmers. Found a few bugs doing it; they're more of an impediment at this point…
Not much Tangent work recently. Social nicety and work anxiety have sapped time and motivation. Whimsy has driven me towards a little example project. This is not a terrible event because I've not done enough stuff to shake out bugs and get a good feel for the language from a 'writing code in it' s…
After doing some of my own ruminations on the subject, I made a post to the community at large to get some input/ideas for enums. Most people seem as if they'd be fine with C# enums. I don't think I'd be fine with C# enums in Tangent.
I'm not completely sold on their design yet, but the current basi…
I'm not completely sold on their design yet, but the current basi…
Had the day off to take care of some errands. I tend to lack motivation, so recharge days are vital. Then I spent a whole lot of time banging my head against stupid bugs and little awkward problems. So not a lot of progress...
Then I got fed up with it and implemented new stuff. A whole 5 minutes la…
Then I got fed up with it and implemented new stuff. A whole 5 minutes la…
Advertisement
Popular Blogs
Advertisement