Skip to content

Releases: xmamo/devin

v1.4.0

13 Apr 09:28
Compare
Choose a tag to compare
  • The written Devin source code and the UI’s state are now saved between sessions.

  • Refactored and improved Devin’s UI code.

  • Minor thesis improvements.

v1.3.0

29 Oct 23:51
Compare
Choose a tag to compare
  • Devin’s UI now utilizes a modern header bar, where the ⏵ and ⏹ buttons are displayed alongside the window controls.

  • A worker thread is now used to update Devin’s UI when the parser and type checker run. Previously, each keystroke would spawn a thread to run the parser and then the type checker. Haskell threads are apparently similar to green threads or fibers; nonetheless, avoiding the creation of this many tasks should make the application more lightweight.

  • A worker thread is now used for Devin’s interactive debugger. Similar to the worker thread described above, this avoids spawning a new thread each time a debugging session is started.

  • Unified the unary operators not and len and functions. Parsing, type checking, and evaluating unary operators is now equivalent to handling functions.

  • The binary operators <, <=, >, >= now allow comparisons between values of any type, as long as both operands are of the same type. If the operands are non-numeric, a lexicographic comparison is performed.

  • Renamed Reference to Cell. The purpose of this change is twofold: providing a better and shorter name, and aligning such name with the terminology used in the thesis. All symbols and functions referring to references have also been renamed using this new terminology: that is, cell instead of reference.

  • The syntax tree and debugger’s state in Devin’s UI are now updated by diff. Previously, an update of the syntax tree or debugger state would cause the relevant visualization to be cleared and rebuilt from scratch. As a result, the user’s selection would be cleared, along with the information about which nodes/frames were expanded and which weren’t.

  • Improved Devin’s parser. Now, variables and functions with names that are equal to keywords can be defined and used. Previously, using functions or variables with keywords as names was not always possible or ergonomic, even though defining such objects has always been feasible.

  • Renamed: toFloatintToFloat, toIntfloatToInt. Unlike operators, functions are not polymorphic; being specific about what gets converted to what is more correct and allows for possible future conversion functions.

  • Difference lists are now used for efficiency. This is faster than (++) when accumulating comments during parsing and errors during type checking.

  • Optimized the parser for rational expressions.

  • Refactored and reformatted Devin’s source code.

  • Substantially improved the thesis by adding more explanations and enhancing word choice.

v1.2.1

01 Sep 18:15
Compare
Choose a tag to compare
  • Refactored Devin’s source code, improving code readability.

  • Updated the thesis to reflect changes, rewording some phrases.

  • Improved the thesis’ Makefile.

v1.2.0

22 Jul 18:34
Compare
Choose a tag to compare
  • The graphical debugger has been improved. Now, a simplified version of the stack is displayed: frames allocated by blocks inside functions now appear to be part of the function’s scope. Furthermore, is used as a placeholder for empty frames.

  • Previously, Devin’s UI would highlight the current line. This was a problem in dark mode, as there wasn’t enough contrast between text and line highlighting in the default Adwaita theme. Therefore, current line highlighting is now disabled.

  • Devin’s UI code has been refactored by restructuring and renaming modules.

  • The thesis has been updated to reflect the aforementioned changes.

v1.1.0

30 May 20:06
Compare
Choose a tag to compare
  • Type checking is now more consistent across all operators: if an overload isn’t found, the resulting type is now always Unknown. Previously, for example, type-checking the expression len x would yield the type Int even if the type of x was unknown.

  • Minor modifications to the thesis.

  • Other minor code improvements.

v1.0.0

28 Feb 16:32
Compare
Choose a tag to compare

The first release!