Git Product home page Git Product logo

iso10206-tests's Introduction

ISO 10206 tests

This is just some tests for checking a compiler's ISO 10206 support. It's intended to help check the correctness of Free Pascal's upcoming ISO 10206 support. It includes shell scripts to build the files for both Free Pascal and GNU Pascal (on Unix-like systems; on other systems, they'll have to be adapted). GNU Pascal has excellent standards support, so that can stand as a reference.

As of 2017-10-12, there are 36 tests. GNU Pascal passes all 36. Free Pascal (versions 2.6.4, 3.0.2, and 3.1.1 tested) passes 3 and fails 33.

Other compilers

You could easily adapt the scripts to build for other compilers, but commercial compilers tend to use their own proprietary extensions rather than obeying standards, and free compilers tend to have a lack of resources. So, the two big free compilers are our best chance for getting standards implemented (and hopefully, increased interoperablity between them (though, any attempt at that will have to be on FPC's side, as GPC is all but abandoned)).

Below are some notes about them. I personally am focusing on Free Pascal, but developers of other compilers are free to use these tests to gauge their implementations.

Vector Pascal

Vector Pascal has some interesting ideas, such as adding extensions for vector programming and more importantly, Unicode identifiers. Though, it falls very short on its claim of supporting ISO 10206, only passing 5 of these tests (oddly, it fails all three that FPC passes, and FPC fails all five it passes), as of 2017-10-13.

One has to wonder though why the developers started their own Pascal compiler for vector programming instead of working on Free Pascal (which is surely the recommended Pascal compiler to work on, because as far as I know, it's the only one actually written in Pascal). Surely, Unicode identifiers could be added to Free Pascal and vector programming could be done though some sort of module (Free Pascal seems to already have a vectors unit using generics, but I get the impression that what Vector Pascal is referring to by vector programming is the ability to manipulate parts of an array, like doing "a[2..4] := 3" to make a[2], a[3], and a[4] all equal 3; though, of course, ISO 10206's value constructors (which Vector Pascal doesn't support) pretty much do the same thing: "a := arraytype[0,5:0;2..4:3]"). In addition, Free Pascal is unbelievably faster; Vector Pascal makes g++ seem fast by comparison.

Virtual Pascal

That's been officially dead for over a decade, but I seriously doubt it would pass a single test. I could be wrong. I might try it out later. It is amazing that the VP community still exists and that they didn't follow the VP developers' advice to move to Free Pascal.

iso10206-tests's People

Contributors

keithbowes avatar

Watchers

 avatar

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.