Code Monkey home page Code Monkey logo

kickc-benchmarks's Introduction

kickc-benchmarks

A series of benchmarks using kickc c compiler.

The suite is directly translated from mad pascal bench suite.

For the latest binary, load suite.xex.

Latest test results:

suite results

Building

There is a Makefile to build the output. If kickc.sh is not on the path, export KICKC_HOME first.

export KICKC_HOME=/path/to/your/kickc-distribution
make

Makefile will create applications for every c file in the src/ directory. So if you are including additional library routines without a main, those sources need to live in lib/ or any .lib/ directory.

Emulator notes

Running the emulator through make, you need to set the value EMURUN to be the path of the xex to run, and call the appropriate emulator task (e.g. wine_altirra):

# set the env var ALTIRRA_HOME
ALTIRRA_HOME=/path/to/your/Altirra-3.90 
make EMURUN=bin/suite.xex wine_altirra

As I'm using Altirra, the build is geared up to producing files for that. The all task will include generating a <src name>.atdbg file (altirra debug) with symbols converted from the kickc generated <src name>.vs which Altirra loads when it loads the xex file.

The script to make this is very hacky and would be better producing different it from the <src name>.dbg or having kickc natively support altirra debug. Currently, where two variables share the same memory location (e.g. ZP varibles) the names conflict, so you often see the wrong name in altirra. Not sure if this is fixable.

Breakpoints are included too, so adding

#include <6502.h>
// ...
BREAK();

in your source code will cause an appropriate break point in the atirra debug file at the correct place in your code.

To run the emulator through make, only altirra with wine is currently supported as I'm developing on linux and this is my preferred way of debugging. More configurations can be add later for e.g. win_altirra, win_atari800.

Windows support is not tested and has mostly been stripped out.

TODO

  1. Floating point implementation and benchmarks

kickc-benchmarks's People

Contributors

jespergravgaard avatar markjfisher avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kickc-benchmarks's Issues

Problem compiling with KickC 0.8.4

Hi Mark,

This is a copy of a private message on https://atariage.com/

I have made a new release of KickC - version 0.8.4. https://gitlab.com/camelot/kickc/-/releases

The benchmarks from https://github.com/markjfisher/kickc-benchmarks compiles without problem.

However, when I execute it it looks wrong and after a bunch of tests it seems to freeze with garbage text on screen after the MD5.

Maybe there is something wrong with the way I compile your suite - or maybe there is some issue with the new release.

Could you help me and test it out? I would like your suite to work before I announce the release on the Atari forum.

Kind regards,
Jesper Gravgaard

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.