1. May 30, 2023
  2. May 25, 2023
    • Marc Durdin's avatar
      chore(developer): replace cwrap wasm bindings · a92917f9
      Marc Durdin authored
      This moves the remainder of the WASM interfaces in kmcmplib to using
      emscripten bind. It is a little bit of a step backwards at present for
      parseUnicodeSet, because I've changed the output buffer type to an int
      for the purposes of simplifying the binding just now. But that can be
      improved later, and at least we are consistent with the binding methods.
      
      Next step is to move the filesystem access out of kmcmplib.
      a92917f9
    • Marc Durdin's avatar
      chore(developer): remove SetError macro · 50186e98
      Marc Durdin authored
      The `SetError` macro emitted `return FALSE;` which was confusing for
      reviewing code flow. Replaced with explicit `AddCompileMessage()` and
      `return FALSE;`.
      50186e98
    • Marc Durdin's avatar
      chore(developer): address review comments · ef101d74
      Marc Durdin authored
      ef101d74
  3. May 24, 2023
    • Marc Durdin's avatar
      chore(developer): consolidate 'extra' field for FILE_KEYBOARD · cdf5f7a7
      Marc Durdin authored
      FILE_KEYBOARD is a structure used in multiple libraries and languages.
      It is passed around between kmcmplib, kmcmpdll, and kmcomp, with three
      separate definitions (kmcmplib/compfile.h, kmcmpdll/compfile.h, and
      kmcomp/compile.pas). These duplicate definitions must be maintained for
      now because of type issues between the legacy kmcmpdll and kmcmplib,
      which means that the definitions must be kept in sync.
      
      Because FILE_KEYBOARD_EXTRA has a C++ class in it, it will be
      initialized in CompileKeyboardHandle rather than in the caller, so
      FILE_KEYBOARD.extra is now a pointer rather than a struct.
      
      When original kmcomp and kmcmpdll are eventually removed, these
      duplications will disappear and some of the memory management and
      lifecycle will become easier to manage.
      cdf5f7a7
  4. May 23, 2023
    • Marc Durdin's avatar
      refactor(developer): compiler interface part 1 for wasm · d1d6dc5d
      Marc Durdin authored
      This starts the refactor of the .kmn compiler interfaces for WASM,
      moving more file writes into typescript and out of the compiler. Adds a
      cleaner binding and structures for passing compile metadata back to
      typescript for additional build steps (e.g. kvk, js builds).
      
      Will rebase the Typescript-based KMW compiler onto this so it can start
      to benefit from the refactoring.
      
      * Fixes a minor issue with loading a .kvks file with an empty flags set.
      * Adds a writeFileSync method to the compiler callback interfaces.
      * Adds an e2e compiler test to verify that .kmx and .kvk are both
        correctly compiled.
      d1d6dc5d
    • Marc Durdin's avatar
      chore(developer): cleanup · 15142e9a
      Marc Durdin authored
      15142e9a
  5. May 14, 2023
    • Marc Durdin's avatar
      refactor(developer): CompileKeyboard merge · ac0cd831
      Marc Durdin authored
      ac0cd831
    • Marc Durdin's avatar
      refactor(developer): move file write out of WriteCompiledKeyboard · e7a6d329
      Marc Durdin authored
      Stage one of the kmcmplib filesystem refactoring, as we move to writing
      to buffers and allowing caller to write to disk. Moves responsibility
      for writing data out of WriteCompiledKeyboard and into
      kmcmp_CompileKeyboardFile. This means that there are now no file writes
      in Compiler.cpp, except for the temp UTF16fromUTF8 (which I will also
      change to a in-memory buffer "real soon now").
      
      Note that responsibility for writing in kmcmp_CompileKeyboardFile is
      very much temporary as we'll move it out of the library altogether in
      a subsequent commit.
      e7a6d329
  6. May 13, 2023
  7. May 12, 2023
  8. May 11, 2023