Skip to content

Releases: davidgiven/cowgol

0.6.1: the 'Professionalism? We've heard of it' release

09 Apr 20:51
Compare
Choose a tag to compare

What's new in 0.6:

  • much better Z80 code --- I did a major microoptimisation pass and knocked off an easy 7%. It now looks almost passable in places. (But the overall package size is bigger because there's an extra debugging tool.)

  • out-of-the-box support for Fuzix systems. You can use Cowgol to develop on real Z80 systems running the Fuzix miniature Unix operating system! If you're patient, and like rapidly mutating APIs. It'll run in 32kB, but that's not enough RAM to load the standard libraries. 48kB or better userspace is required.

  • CP/M distribution packages. Precompiled binaries for your favourite antique operating system! Requires at least 40kB TPA to do anything useful.

What's new in 0.6.1:

  • fix a ghastly 6502 codegen bug which wasn't picked up in my tests that was causing the compiled compiler to generate completely broken code. (I'm amazed it didn't crash. It was scribbling all over random memory.) It's a good thing nobody actually uses this stuff, isn't it?

  • some minor changes where Cowgol autodetects memory rather better, which means it's much less important to tune it for the available RAM. Nobody should notice any difference.

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

📦 CP/M distribution (zip)

📦 Fuzix distribution (zip)

0.6: the 'Here's Two Pence, Go Buy Yourself A Real Operating System' relase

08 Apr 15:57
4d5b12b
Compare
Choose a tag to compare

0.6!

What's new here:

  • much better Z80 code --- I did a major microoptimisation pass and knocked off an easy 7%. It now looks almost passable in places. (But the overall package size is bigger because there's an extra debugging tool.)

  • out-of-the-box support for Fuzix systems. You can use Cowgol to develop on real Z80 systems running the Fuzix miniature Unix operating system! If you're patient, and like rapidly mutating APIs. You need a system which supports a 48kB userland (so no TRS80-4P or ZX Spectrum).

  • CP/M distribution packages. Precompiled binaries for your favourite antique operating system! Requires a 50kB TPA.

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

📦 CP/M distribution (zip)

📦 Fuzix distribution (zip)

0.5: the 'Industry Standard' release

04 Apr 22:12
Compare
Choose a tag to compare

Good news, everyone --- we support CP/M, now! FInally, a mainstream platform...

The big headline feature is the new Z80 code generator. This is good enough to run the compiler on a CP/M system and generate small binaries, but it needs a massive optimisation pass and the code quality is grim. There's a CP/M emulator supplied with Cowgol which is used for compiler tests but it's also set up to let you play directly with the compiler. Instructions are in the README.

There are 6502 changes too: I found a number of terrifying bugs in the 6502 code generator while working on the Z80 one, so those are fixed too. (Sadly, this means that the Standard Benchmark now takes 7m8s, up 12s from the previous release.)

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

0.4: the 'Faster, Better, Shorter, Smaller' release

12 Mar 22:43
Compare
Choose a tag to compare

0.4! It's almost looking like something maybe useful, if you squint hard enough!

This version has the 6502 code generator massively overhauled. It's smarter, smaller, and produces drastically better code --- on average, we've lost over a tenth of the code size of the BBC Micro native compiler. Plus, it runs a lot faster. 0.3 would complete the Standard Benchmark in 7m54s; it now takes 6m38s. That's not due to being smarter; it's pure code generator better code. And because it's better code, memory usage and code size is actually down.

In fact, it's so much smaller and simpler, that we're actually a gnat's whisker away from self-hosting on the BBC Micro. Nearly everything fits!

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

0.3: the 'Short Attention Span' release

26 Feb 22:07
Compare
Choose a tag to compare

...and what this one has going for it is that it's much, much faster. Like, the Standard Benchmark (compiling a one-line 'hello world' program) now takes 7m54s rather than 16m7s. This has mostly been achieved by cheating, so instead of working smarter, we just use user-space disk buffers and a rewritten I/O layer. Yes, it turns out that the previous version was spending almost exactly half of the compilation runtime waiting for the MOS to do system calls.

(Turns out that the MOS built-in file system buffering is really, really slow.)

I can actually shave another 40s off by using a combination of the new FCB system and traditional MOS channels, but I want to migrate to FCBs anyway because CP/M will need it. The old file API has gone.

Memory usage and binary size is up, of course, but it's totally worth it.

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

0.2: the 'How did it ever work' release

22 Feb 21:48
Compare
Choose a tag to compare

In this release, a whole bunch of refactoring and bugfixes. The tokeniser has been rewritten from scratch to be much faster and reliable (using Flex tables); then I threw away all that speed improvement by splitting the typechecker into two passes, the typechecker and the backendifier. Many, many showstopping bugs have been fixed which should have meant the compiler never worked.

It'll run the Standard Benchmark in 16m7s, where the previous version ran it in 16m50s.

Precompiled binaries

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

0.1.1: the "Embarrassed Cough" release

12 Oct 22:04
Compare
Choose a tag to compare

Naturally, I found a bug almost immediately in the 0.1 release. This is fixed. There's also even some documentation.

What you get:

  • a terrible, buggy bootstrap compiler
  • ...which will build a terrible, buggy cross-compiler for Linux
  • ...which will build a terrible, buggy native compiler for a BBC Micro with Tube
  • ...which will compile small programs very slowly.

It's full of bugs, and it's slow and huge. Enjoy!

Here is a bootable floppy disk image which you can use to try it yourself. See http://cowlark.com/cowgol for the documentation.

Precompiled binaries

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

v0.1: the "It lives! It lives, I tell you!" release

11 Oct 22:57
Compare
Choose a tag to compare

This is the very first public release of Cowgol.

What you get:

  • a terrible, buggy bootstrap compiler
  • ...which will build a terrible, buggy cross-compiler for Linux
  • ...which will build a terrible, buggy native compiler for a BBC Micro with Tube
  • ...which will compile small programs very slowly.

It's almost undocumented, and it's full of bugs, and it's slow and huge. Enjoy!

Here is a bootable floppy disk image which you can use to try it yourself.

Precompiled binaries

💾 BBC Micro floppy disk image (ADFS-M adf.zip)

Very first demo version (very broken)

08 Sep 19:53
Compare
Choose a tag to compare
Pre-release

Timestamp tag. This is the first version with an actual runnable demo. It's broken in many ways, and very very slow (disturbingly slow). Here's an autobootable SSD to prove it which you can run on jsbeeb.

cowgoldemo.ssd.zip