The Bag of Holding

Profile
Bellevue, WA
A bipolar guy in a pressure-cooker industry
1,455 comments
44 followers
628 entries
Advertisement
ApochPiQ
February 27, 2012
LLVM... it LIVES!
So I decided that I was tired of not working on the VM side of things, and rigged up a simple test harness for LLVM.

Basically, this creates the following situation:

  • getstuff() is a function defined in the native .EXE which returns a simple integer
  • answer() is a function defined in LLVM bitcode at run…
2,128 views
ApochPiQ
February 27, 2012
Variable syntax is finally sane
At long last, the Epoch syntax for defining and initializing variables has gotten some love.

Here's how R12 Epoch looks:

add : integer a, integer b -> integer c = a + b

entrypoint :
{
integer forty = 40
integer two = 2
integer the_answer = add(forty, two)
debugwritestring(cast(string…
1,584 views
ApochPiQ
February 21, 2012
Epoch: Structure definitions get an overhaul
Instead of working on changing variable initialization syntax (which is hard) I decided to make structures work again in the R12 compiler, which turned out to be more or less just as hard.

The results are pleasing, though:

structure outer :
integer foo,
inner bar

structure inner :
string baz,
stri…
1,654 views
ApochPiQ
February 18, 2012
Gentlemen... BEHOLD!
I give you Epoch, now with a much better function definition syntax:

//
// FUNCTIONS.EPOCH
//
// Compiler test for higher-order functions
//

entrypoint :
{
apply("test", debugwritestring)
debugwritestring(apply("test", mutate))
}


apply : string param, (thefunction : string)
{
thefunction(param)
}

apply : st…
2,149 views
ApochPiQ
February 14, 2012
More syntax speculation
I'll just leave this here:


entrypoint :
{
integer total = sum(1, 10)
printinteger(total)
}

sum : integer begin, integer end -> integer ret = 0
{
while(begin < end)
{
ret += begin
++begin
}
}



foo :
{
complex i = 0, 1
assert(i * i == -1)
}


fib : 0 -> 1
fib : 1 -> 1
fib : integer n -> …
1,838 views
ApochPiQ
February 12, 2012
Quick Epoch stuffs
It's been a productive weekend for Epoch! Today I got postfix entities working correctly, implemented a bunch of overload resolution logic, and made a few other miscellaneous fixes and tweaks.

As of now, at least four of the compiler test programs are passing. I still need to work through a lot of s…
1,687 views
ApochPiQ
February 12, 2012
Epoch Update of the Week
Plugged away at Epoch tonight for a few hours; I'm pretty happy with the results.

The Release 12 compiler is officially generating workable bytecode now - to the point where I can run a (very small) subset of the compiler tests in the VM.

One of these tests is the old "pi" program, which simply compu…
1,611 views
Advertisement
ApochPiQ
February 08, 2012
The Making of Epoch, Part 3 - Prototyping
The Making of a Pragmatic Programming Language for the Future
Part 3: Prototyping

The first part of creating any major project is prototyping, or at least, that's how it should be. When first embarking on an undertaking like building a major piece of software, it is essential to scope out the size an…
2,025 views
ApochPiQ
February 05, 2012
Epoch - quick status update
So after the little existential whine-fest about Epoch a few days ago, I've found myself miraculously rejuvenated.

I credit this to two things. First, I started writing about the development process, which got me thinking about what's left to do and how much I really want the language. Second, I att…
2,168 views
ApochPiQ
February 04, 2012
The Making of Epoch, Part 2 - WTF?
The Making of a Pragmatic Programming Language for the Future
Part 2: WTF is up with about Epoch?

Welcome to part 2 of the series on the Epoch language's creation and development. In this installment, I'd like to present a sort of FAQ, or more accurately, a list of "frequent WTFs" about Epoch. Thes…
7,015 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
13 Followers
klg71
Generalist
53 Entries
1 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
15 Entries
13 Followers
johnhattan
Programmer
1,277 Entries
50 Followers
Advertisement