I had some time tonight to work on Tangent. On the menu? Infrastructure for unit of measurement types (as the clever folks might've guessed by the title). Under the hood, a Measure inherits (awkwardly) from Type. It adds a list of UnitOfMeasure, a comparator, and a few util methods for now. A UnitO…
First off, thanks to Daerax for the great link that helped this post get along.
Secondly, w00t! I got my christmas present
And work is finally calming down after release and the clean-up of a monumental clusterfuck caused by a single mis-labeled constant used once in code (not mine). Which allowed me…
Secondly, w00t! I got my christmas present
And work is finally calming down after release and the clean-up of a monumental clusterfuck caused by a single mis-labeled constant used once in code (not mine). Which allowed me…
I realized something today. I do not learn advanced concepts well. This is a known problem. There's probably a lot of reasons why this is, and I have a decent idea about a few of them, but today I thought of a new one.
I am pretty smart. Or at least all the tests always said I was, and looking aroun…
I am pretty smart. Or at least all the tests always said I was, and looking aroun…
Work continues to be hellish. If someone does not go postal or quit or end up in a psych ward or shot by an angry client by the end of next week, we'll call it a win.
So no Tangent work. Still need to implement better method grouping for phrases, generic bits for phrases, the type-arg sort of stuff,…
So no Tangent work. Still need to implement better method grouping for phrases, generic bits for phrases, the type-arg sort of stuff,…
So that project that I thought would clear out once released? The hits just keep on coming with that. The project involves linking some payment processing with a new peer. First the peer neglected to implement one of the codes we needed. There's a bunch and it's a rare code, so we didn't catch it i…
Got to work over the weekend to babysit and tweak some stuff regarding the release of the big project I was leading. No time for work on Tangent, but hopefully the release will free up my motivation and time to get back to it.
And now that at least the basics of generics are declarable (and making t…
And now that at least the basics of generics are declarable (and making t…
Plenty of time tonight to work on implementing generics for methods. I managed to get type parameters working earlier in the week. Again, that is this sort of construct:
A declaration that says 'this argument must be a type, and is ref…
public static bool foo {
// ...
}
if( foo string ){
// ...
}
A declaration that says 'this argument must be a type, and is ref…
Had the evening free to work on added implementation of generics. Generic methods are pretty much a hojillion more times difficult to implement than their class brethren. To complicate matters a bit, I'm looking to modify the standard syntax a bit to better support phrases.
There are three things th…
There are three things th…
My main dev machine ran into some problems a few days back. Windows would flash and generally not be interactive, making it pretty useless. The login screen and alt-ctrl-del screen worked well, so I put the problem in with the video card/driver (since I'm using vista). A reinstall of the drivers di…
Link
New Tangent release is out. The link is for the release page describing some of the additions since you could last toy around with the language. It still mostly sucks, but has some new and interesting things I've not seen offered elsewhere. Compliments are welcome; bug reports or suggestions fo…
New Tangent release is out. The link is for the release page describing some of the additions since you could last toy around with the language. It still mostly sucks, but has some new and interesting things I've not seen offered elsewhere. Compliments are welcome; bug reports or suggestions fo…
I fixed up a lot of the brokenness caused by the const addition. The pi and maze testapps work again.
More importantly, these sort of things will now provide you with an error (and not cause ambiguity errors when paired with a valid option like properties often cause):
More importantly, these sort of things will now provide you with an error (and not cause ambiguity errors when paired with a valid option like properties often cause):
4 = 2;
int = string;
* = /;
main =…
Tangent at last seems to have lost some steam. A distinct desire to play games and added workplace workload and a visit from the family have conspired to leave me with little time and motivation to work on the language. There's about a half dozen mildly hairy changes that should get done before the…
Whimsy drove me from productive stuff towards profiling stuff. The maze app (last post) is indeed spending 60-70% of its time on what amounts to a single method call. It's not actually the dynamic invoke on a MethodInfo (like I suspected) but simply creating storage for the return value from a .NET…
Beginning Compilation.
Imports complete. 30 types exist.
Compilation Complete.
Time Elapsed: 00:00:01.1542230
#################################################################################
#.....#...............#...#...........#.....#...............#.....#.............#
###.#.#.###########.#.#.#.#.#…
Sorry folks, no maze output tonight. I spent the night (and half of last night) hunting one bug. The bug manifested itself in double-lists: List> but only when Tangent types were involved. List> worked fine. The symptom was that the second indexer call would crap out in method group invoke sa…
Had some time tonight (and more importantly, some motivation) and worked through the maze gen. It doesn't quite run yet. Fixed two bugs, one with default initializers and complex types (this-method instances), another where a returned instance's indexers were ignored. I've still got an elusive bug …
Tiny update. The bug from the last post has been found and killed. The problem wasn't with nested type parameterization (that works fine). The problem was that when Tangent instances go into .NET, they go as the underlying .NET instance of all Tangent instances. Tangent then handles the type safety…
Not much to report this week. The explicit identifier stuff took a lot of energy and was followed up by hectic real work. Plus I'm at a point where pretty much all of the experimental sort of Tangent features are implemented, leaving the relatively mundane tasks (implementing generic declarations, …
Hah! I finally got around to finishing off the phrase declarations. The implementation is a single embaressingly horrid 13 parameter, 800 line, procedural, recursive method. It's been a while since I've faced a problem so frustrating or beyond my grasp that I diverted so much energy from basic code…
Little work tonight. I have method picking based on explicit identifier and combined with a standard parameter working now. There's no priority for the identifier versions yet. I also need to make null not trigger the explicit identifier methods [edit: done]. Mostly though I'm still running into me…
One of the main design focuses for Tangent as it stands now is to better allow Domain Specific Language (hereafter DSL) tendencies. Many of my primary motivations come from game programming where scripting languages are now ubiquitous. Even in the business world, there's been a proliferation of obj…
Added basic support for indexers tonight. Indexers suck. They're lengthy, they're weird, and despite their limited utility they're pretty essential for that utility. And most things still seem to be broken. Prolly the type parameterization stuff. Whatever. I can now create, add to, retrieve from, a…
It's been a slow two weeks with Disgaea 3 and American Labor Day occupying a lot of my time. Such layoffs seem to help though; they provide time to design. Time to scheme up good solutions for things. Like this. The problem is directly from Tangent internals. A type holds a number of definitions. B…
Not much done over the long labor day weekend. Social obligations brought me away from the internet. Not so bad with a good book (American Gods) if it's infrequent.
Tangent work tonight was some updates to the .NET importer and certain bits of the type system to support importing generic types such …
Tangent work tonight was some updates to the .NET importer and certain bits of the type system to support importing generic types such …
A week long vacation that is more work than relaxation sucks. 5 extra 3-day weekends? Infinitely better. Today is one of those random bonus days. In addition to squishing that one bug (see below) I wanted to get properties working. And lo, they work (at least for the simple case):
public class foo{
…
Ran into an interesting bug over the weekend, and fixed today. The following code was in error:
The error was …
public class foo{
public operator delegate int op(int x, int y);
}
public static void main(){
local foo x = new foo;
x.op = (int x, int y) => int{return(x+y);};
print 2 x.op 6;
}
The error was …
Daerax asked if Tangent was going to support local functions. It seems he meant anonymous delegate things, so yes. They're very useful for just little tidbits of glue code (because there's no 'bind' equivalent in C#), and pretty vital in providing snippets as strategies. Since Tangent is making an …
Advertisement
Popular Blogs
Advertisement