Ye Olde Ramblings

Current topic is the development of a toy language to test a few syntax ideas.
237 comments
1 followers
359 entries
Advertisement
Telastyn
January 11, 2010
And so it goes...
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…
1,561 views
Telastyn
August 07, 2009
Tangent, now with usable error messages!
In a long overdue effort to get people to actually use the software I write, the Tangent rehash now provides line numbers with error messages. w00t!


public goose class foo{
public bar x;
}




moocow.tan(2,9) : error : Unknown Type 'bar'
1,708 views
Telastyn
August 05, 2009
Back to work!
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…
1,625 views
Telastyn
July 23, 2009
Tangent: Haitus
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…
1,617 views
Telastyn
July 20, 2009
Tangent: Syntax reworking
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…
1,365 views
Telastyn
July 15, 2009
Tangent: Adverbs
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 …
1,258 views
Telastyn
July 09, 2009
Tangent: Pattern Matching, Part 1
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…
1,447 views
Telastyn
July 09, 2009
Tangent: Pattern Matching, Part 1
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…
1,319 views
Telastyn
July 08, 2009
Tangent: Generic Method Bodies, Part 2
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 …
1,345 views
Telastyn
July 07, 2009
Tangent: Generic Method Bodies, Part 1
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 …
1,320 views
Telastyn
July 06, 2009
Tangent: this-properties part 2.
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…
895 views
Telastyn
June 30, 2009
Tangent: this-properties
Just a little work today. I implemented something mildly weird. For those familiar with C++, Tangent supports a form of operator(). It's something like:


public class foo{
public this()=>void{
print "foo!";
}
}

public static main()=>void{
local foo aFoo = new foo;

aFoo();…
804 views
Telastyn
June 25, 2009
Tangent: Visibility, Part 2
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…
879 views
Telastyn
June 24, 2009
Tangent: Visibility
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 …
740 views
Telastyn
June 15, 2009
Tangent: Refactoring, Part 1
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…
763 views
Telastyn
June 10, 2009
Tangent: Using
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…
961 views
Telastyn
June 05, 2009
Tangent: Exceptions
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…
990 views
Telastyn
June 02, 2009
Tangent: Dictionary Iteration
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…
1,013 views
Telastyn
May 28, 2009
Tangent: Dictionary
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…
766 views
Telastyn
May 22, 2009
Tangent: Code Examples
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).
999 views
Telastyn
May 11, 2009
Tangent: Method Documentation
More documentation work. Methods and most of Phrases (and other unusual method declarations) done.
829 views
Telastyn
May 10, 2009
Tangent: Statement Documentation
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.
1,137 views
Telastyn
May 07, 2009
Tangent: v0.28
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…
805 views
Telastyn
April 29, 2009
Tangent: Buggery 2
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…
854 views
Telastyn
April 22, 2009
Programmer Archetypes?
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…
1,245 views
Telastyn
April 06, 2009
Tangent: Dice, Part 2.
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…
735 views
Telastyn
April 01, 2009
Tangent: Dice, Part 1.
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…
836 views
Telastyn
March 31, 2009
Of Dice and Men
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…
725 views
Telastyn
March 23, 2009
Tangent: Enums
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…
805 views
Telastyn
March 18, 2009
Tangent: Arrow.
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…
723 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
9 Followers
15 Entries
10 Followers
johnhattan
Programmer
1,277 Entries
47 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement