Skip to content

Instantly share code, notes, and snippets.

Avatar

Artyom Shalkhakov ashalkhakov

View GitHub Profile
@ashalkhakov
ashalkhakov / main.dats
Last active Aug 7, 2019
IO monad in ATS
View main.dats
(*
HX-2019-03-26-2:
The original code is available at
https://gist.github.com/ashalkhakov/c3577e97b20020fde31f84447fd1e056
I turned runCommand into a polymorphic function and
also made Command a linear datatype (i.e., dataviewtype)
AS-2019-03-26:
@ashalkhakov
ashalkhakov / flats.dats
Created Jan 31, 2019
Outputting HTML table in ATS
View flats.dats
#include
"share/atspre_staload.hats"
#define N 9
#define M 14
implement main0 () = let
fun loop1
{i:nat | i <= N}
(i: int i): void =
@ashalkhakov
ashalkhakov / pitch.md
Last active Apr 2, 2018
ATS sales pitch
View pitch.md

Time well spent when programming

Audience: C/C++ programmers.

Improving correctness means less maintenance and more fun!

  • everybody want more features
  • but more features usually mean more bugs and failures
  • stuck fixing bugs? not a good use of your time!
  • yet software devs spend most of their time hunting for and fixing bugs
@ashalkhakov
ashalkhakov / .gitlab-ci.yml
Last active Mar 10, 2020
Running .NET 3.5 CF builds under Docker for Windows
View .gitlab-ci.yml
# this is the GitLab-CI file for building the image
variables:
CURRENT_IMAGE_TAG: rfid-applied/netcf35_build_environment:dev
stages:
- dockerize
dockerize:
stage: dockerize
script:
@ashalkhakov
ashalkhakov / fc-phantom-types.dats
Created Dec 22, 2017
First-class phantom types in ATS
View fc-phantom-types.dats
(*
** Hello, world!
** run it here: http://www.ats-lang.org/SERVER/MYCODE/Patsoptaas_serve.php?mycode_fil=hello
*)
(* ****** ****** *)
//
#define
LIBATSCC2JS_targetloc
"$PATSHOME\
View gist:85902ec8992acef7eef3fbf0a1c41ddb
(*
** Hello, world!
*)
(* ****** ****** *)
//
#define
LIBATSCC2JS_targetloc
"$PATSHOME\
/contrib/libatscc2js/ATS2-0.3.2"
View monads-js.dats
(*
** Hello, monadic world!
**
** Author: Artyom Shalkhakov
** artyom DOT shalkhakov AT gmail DOT com
**
** Can be run using:
** http://www.ats-lang.org/SERVER/MYCODE/Patsoptaas_serve.php
*)
@ashalkhakov
ashalkhakov / ats-syntax-hilighting-monaco
Created Jun 27, 2016
ATS/Postiats syntax hilighting support for the Monaco editor.
View ats-syntax-hilighting-monaco
// see: https://microsoft.github.io/monaco-editor/monarch.html
// ATS/Postiats lexical syntax definition
// Written by Artyom Shalkhakov over the week of 20th - 27th of June, 2016.
// License: BSD v3 (but probably GPL, since ATS/Postiats lexer is GPL? not a lawyer!)
// TODO: staload and dynload are followed by a special kind of string literals
// with {$IDENTIFER} variables, and it also may make sense to highlight
// the punctuation (. and / and \) differently.
View shuntingyard.dats
#include
"share/atspre_staload.hats"
(* ****** ****** *)
(* operator interface *)
datatype assoc = ASSOCnone | ASSOCleft | ASSOCright
extern
fun
eq_assoc_assoc (assoc, assoc):<> bool
View stacked-union.dats
//
// A simple example of C-union
//
(* ****** ****** *)
//
// Author: Hongwei Xi
// Authoremail: gmhwxiATgmailDOTcom
// Start time: November, 2013
//
(* ****** ****** *)
You can’t perform that action at this time.