New PGP Key

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512,SHA1

I am transitioning GPG keys from an old 1024-bit DSA key to a new
4096-bit RSA key.  The old key will continue to be valid for some time,
but I prefer all new correspondance to be encrypted in the new key, and
will be making all signatures going forward with the new key.

This transition document is signed with both keys to validate the
transition.

If you have signed my old key, I would appreciate signatures on my new
key as well, provided that your signing policy permits that without
reauthenticating me.

The old key, which I am transitioning away from, is:

  pub   dsa1024 2000-01-28 [SCA]
      7698 88C0 235A 8A75 08BB  A531 06FF 7498 22EE E656
  uid           [ultimate] Gordon Tisher 

The new key, to which I am transitioning, is:

  pub   rsa4096 2019-01-10 [SC] [expires: 2024-01-09]
      5D34 26DA 8064 4A97 31AB  73B3 ADF3 B003 07F6 ACFA
  uid           [ultimate] Gordon Tisher 


To fetch the full new key from a public key server using GnuPG, run:

  gpg --keyserver keys.gnupg.net --recv-key 5D3426DA80644A9731AB73B3ADF3B00307F6ACFA

If you have already validated my old key, you can then validate that the
new key is signed by my old key:

  gpg --check-sigs 5D3426DA80644A9731AB73B3ADF3B00307F6ACFA

If you then want to sign my new key, a simple and safe way to do that is
by using caff (shipped in Debian as part of the "signing-party" package)
as follows:

  caff 5D3426DA80644A9731AB73B3ADF3B00307F6ACFA

Please contact me via e-mail at  if you have any
questions about this document or this transition.

Gordon Tisher
gordon@balafon.net
2019-01-10
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEnIwMGjpKKcoH8GnH+r504Win618FAlw35fMACgkQ+r504Win
6197/Q//cGojOaHzEL1kFyS3BeW4jKp+Zjvk1cAQe4bUM56Ig71bBdL9dDfgM2iq
dQmr6FQfR37ljvaJdoS/zNFkN5znnGKux1EombwqqQR77/WvyopnTMadM3R2ZB56
1sLJWRLjcPaOqCW7D4c/44UASUAykwB66e0slsp/rdmtX0MhcmAmNIqZMSM+THc0
5n88/tRQuAIwmdwuP4u1z0qoOXGIKXOWp5UXcE1LEbnaCrVcJ9UXSNbs9Z+GW5LJ
MjZmUWrPMvjGh4KIr13xAbOxvhkvRc7yT9ZlxXE2gvglOa6OOeYK2ynPo6v4ZhoH
NtVqFjiOKRFkHJNlSS8bUde6OGkciKCJ26uaMIWJg3iyLDypkROkwxJfD/o185+B
dIawTBCpGjQJPB+2jx/g7w0ixtLqBs4pB4vG6XXc1tcyzs7Elh5XkLpTuZVBQCU9
b1G450fA0TVfMh8U4Qj8qPaePRYLaIRbK+QApgKrSZKpItnepBW+Cp9OEBUbqROp
faDaB6tFiM7Yq2h502ZYZlsw5DzOVhLgG8+AnV2sa4MINI/fNBLr8tWVNoRXCg76
qZCCPD5Xes16AT7lM/vF+HVrXgS0UXpQBvmTslpecvjjAQHtnKqIa91m5MHlGUZS
pAMm3awkKc+XulXQr+43myf52AMNq2hFL5xyOoKUcqu35Bpo3AaIXQQBEQIAHRYh
BHaYiMAjWop1CLulMQb/dJgi7uZWBQJcN+X0AAoJEAb/dJgi7uZWEAMAn1PPP0Zo
ZPbxA9HWq27beG1LvbvjAKCGmH8zMNBJ8i7Va/gvFD+v6cQ7nQ==
=W+Np
-----END PGP SIGNATURE-----

Januaro 2018

Nu, mi tute ne plenumis mian resolucion skribi ĉiutage dum Januaro. Tamen mi priskribos la aferojn de la monato.

Post novjara ferio mi revenis al mia nova laborejo, kaj daure programumis tie. La etoso en la oficejo ankoraŭ agrablas, kaj mi ĝuas paroli kaj labori kun miaj kolegoj.

Mi pasis unu tagon en malsanejo, bedaŭrinde, pro malofta atria fibrilacio. La kuracistoj devis ŝoki mian koron por reagordiĝi ĝin. Tia epizodo okazis naŭ- aŭ dek-foje dum la lastaj dudek jaroj, do estas iome rutina. Tamen estas zorgiga je mia edzino.

Sed nun ĉiu fartas bone.

Novjara Resolucio

Kiel novjara resolucio, mi volus skribi ĉiutage pri la okazaĵoj de la tago. Mi komencos hodiaŭ por ekzerci. Ĝis nun mi neniam kapablis verki taglibron. Tamen mi provos.

Hodiaŭ mi reportis du kaviojn al la bestoŝirmo, de kie ni “adoptis” ilin antaŭ kelkaj tagoj. Dum longa tempo mi volis adopti etan beston, por ke la infanoj lernu kunvivi kaj interagi kun bestojn. Mian filiĉon teruras etaj bestoj kiel katoj kaj hundoj, do mi volas ke li alkutimiĝu pri ilin. Sed mia edzino allergiĝas je katoj, kaj mia filino allergiĝas je hundoj. Do ni adoptis du kaviojn. Ni aĉetis kaĝon kaj meblojn kaj nutraĵojn. La precipa manĝaĵo de kavioj estas fojno. Do ni aĉetis grandan blokon da fojno.

Do kompreneble dum la du lastaj tagoj ni malkovris, ke mi mem allergiĝas je fojno.

La filino kaj la filiĉo ploris, sed ili komprenis, ke ni ne plu povus restigi la kaviojn. Mi reportis ilin, kaj donis la meblojn ktp al la bestoŝirmo.

Poste ni renkontis mian bopatrinon por manĝi suŝion, kaj post manĝi ni iris al butikaro por aĉeti hartondon por la filiĉo. En la butikaro estis eta karuselo, kiun la infanoj, post longa petado, rajtis rajdi.

Sekve hejmen por vespermanĝo, filmo, kaj lito.

Configuration for Debugging the Pony Compiler in Visual Studio Code on Windows

For debugging the Pony compiler on Windows I use the following configuration files in the .vscode directory of my cloned ponyc git repo.

I also use the Pony Syntax Colorizer for syntax highlighting in Pony programs.

Updated: updated tasks.json for more recent VSCode versions.

c_cpp_properties.json:

{
  "configurations": [
    {
      "name": "Win32",
      "includePath": [
        "${workspaceRoot}/build/debug-llvm-3.9.1/ThirdParty/lib/LLVM-3.9.1-Debug/include",
        "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.11.25503/include",
        "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/shared",
        "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/ucrt",
        "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/um",
        "${workspaceRoot}/src/common",
        "${workspaceRoot}/src/libponyrt"
      ],
      "defines": [
        "PONY_VERSION=\"0.20.0\"",
        "LLVM_VERSION=\"3.9.1\"",
        "PONY_COMPILER=\"msvc\"",
        "PONY_BUILD_CONFIG=\"debug\"",
        "PONY_LLVM=391",
        "DEBUG",
        "_DEBUG",
        "_MSC_VER=1900",
        "UNICODE"
      ],
      "browse": {
        "limitSymbolsToIncludedHeaders": true,
        "databaseFilename": "C:/Users/Gordon/Dev/pony/ponyc/.vscode/browse/.browse.VC.db",
        "path": [
          "${workspaceRoot}/build/debug-llvm-3.9.1/ThirdParty/lib/LLVM-3.9.1-Debug/include",
          "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.11.25503/include",
          "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/shared",
          "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/ucrt",
          "C:/Program Files (x86)/Windows Kits/10/Include/10.0.16299.0/um",
          "${workspaceRoot}/src"
        ]
      },
      "intelliSenseMode": "msvc-x64"
    }
  ],
  "version": 3
}

Obviously the version numbers and directory names for LLVM, Visual Studio and Windows SDK will need to be updated for your particular installation.

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Ponyc",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceRoot}/build/debug-llvm-3.9.1/ponyc.exe",
      "args": [ ],
      "stopAtEntry": false,
      "cwd": "${workspaceRoot}",
      "environment": [
        {
          "name": "PONYPATH",
          "value": ""
        }
      ],
      "externalConsole": false
    },
    {
      "name": "Attach to Process",
      "type": "cppvsdbg",
      "request": "attach",
      "processId": "${command:pickProcess}"
    }
  ]
}

This provides two launch tasks, one for the Pony compiler, and one for attaching to a running program.

tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "distclean",
      "command": "${workspaceRoot}/make.bat",
      "args": [
        "distclean"
      ],
      "type": "shell",
      "group": "none",
      "problemMatcher": []
    },
    {
      "label": "configure",
      "command": "${workspaceRoot}/make.bat",
      "args": [
        "configure"
      ],
      "type": "shell",
      "group": "none",
      "problemMatcher": []
    },
    {
      "label": "clean",
      "command": "${workspaceRoot}/make.bat",
      "args": [
        "clean",
        "--config=debug"
      ],
      "type": "shell",
      "group": "none",
      "problemMatcher": []
    },
    {
      "label": "build",
      "command": "${workspaceRoot}/make.bat",
      "args": [
        "build",
        "--config=debug"
      ],
      "type": "shell",
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "problemMatcher": "$msCompile"
    },
    {
      "label": "test",
      "command": "${workspaceRoot}/make.bat",
      "args": [
        "build",
        "test",
        "--config=debug"
      ],
      "type": "shell",
      "group": {
        "kind": "test",
        "isDefault": true
      },
      "problemMatcher": "$msCompile"
    }
  ]
}

This will provide tasks for building and testing ponyc in debug mode.

settings.json

{
  "files.associations": {
    "*.h": "cpp",
    "*.c": "cpp"
  }
}

Windows builds must use C++ for all source files.