897 Commits

Author SHA1 Message Date
b3be908242 Add Date type and database release docs 2026-04-15 23:20:23 +03:00
14dc73db3e Harden SQLite provider release behavior 2026-04-15 23:11:50 +03:00
f9bbdd56bf Test DB rollback precedence in SQLite 2026-04-15 22:38:11 +03:00
04e80c384e Stabilize DB provider registration test 2026-04-15 22:35:19 +03:00
6d340824e4 Tighten SQLite transaction failures and tests 2026-04-15 22:20:29 +03:00
5f6f6b9ae4 Align SQLite value conversion across JVM and native 2026-04-15 22:03:42 +03:00
55ba6113e7 Add Lyng DB contract and SQLite provider skeleton 2026-04-15 20:39:38 +03:00
b42ceec686 Preserve VM throw sites in stack traces 2026-04-14 01:17:04 +03:00
fada848907 Add backtick string literals and formatter support 2026-04-13 23:08:18 +03:00
e925195495 yet another import fix 2026-04-13 22:49:02 +03:00
3b6bdda0a4 another import fix 2026-04-13 20:43:11 +03:00
ab39110834 Add repeated local import regression coverage 2026-04-12 11:11:32 +03:00
47eb2d7d61 Fix transitive import re-exports and stabilize captures 2026-04-12 09:16:58 +03:00
eefa4c8f1a Fix stdlib import aliasing and launch captures 2026-04-11 20:24:44 +03:00
6171b0d95f Fix duplicate stdlib import redefinition 2026-04-11 19:24:08 +03:00
a1ea09440d Optimize native CLI release binary 2026-04-09 22:30:43 +03:00
88ce04102a Add CLI atExit shutdown handlers 2026-04-09 22:17:45 +03:00
0e73d80707 plugin fix 2026-04-09 19:37:23 +03:00
121d860043 Document native networking limits 2026-04-09 19:17:32 +03:00
717758149b cleaned up tcpserver.lyng, again ;) 2026-04-09 19:01:26 +03:00
73ec8f9be6 cleaned up tcpserver.lyng/2 2026-04-09 18:28:59 +03:00
805c54a408 cleaned up tcpserver.lyng 2026-04-09 18:26:25 +03:00
9b90fe370b improved tcpserver.lyng sample 2026-04-09 17:11:30 +03:00
840cd32574 Fix captured range bounds in launched for-loops 2026-04-09 17:05:00 +03:00
fbb1683ba3 Fix concurrent TCP CLI scope and add regressions 2026-04-09 11:55:01 +03:00
c9eb3df93d Add Deferred.joinAll helper 2026-04-09 11:27:32 +03:00
402b8bb1b3 Fix native CLI TCP regression path 2026-04-09 11:00:23 +03:00
aa1b74620e docs for cli fix; KMP compatibility bug fix 2026-04-08 22:54:22 +03:00
ef95ed4405 package structure/import for CLI 2026-04-08 22:38:34 +03:00
b6c6ef021a fixed some exception catching problems on wasm target 2026-04-08 22:05:02 +03:00
c6cfd52b01 fixed site docs behavior on narrow screens 2026-04-08 10:53:21 +03:00
12fb4fe0ba + String.replace 2026-04-08 10:45:01 +03:00
368ce2ce8c added buffer.base64std 2026-04-08 09:27:52 +03:00
d0d79d2f07 docs: add LegacyDigest module documentation
- New docs/LegacyDigest.md: full reference for lyng.legacy_digest,
  covering the sha1() API, input types (String / Buffer), FIPS compliance
  note, and explicit guidance on appropriate vs. inappropriate use.

- docs/ai_stdlib_reference.md: entry in section 5 so AI agents know
  LegacyDigest.sha1() exists and is intentionally named as legacy-only.

- docs/whats_new.md: release-note section alongside Complex, Decimal,
  and Matrix, with a minimal runnable example and cross-link.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 19:53:01 +03:00
69013392d3 Add lyng.legacy_digest module with LegacyDigest.sha1()
Provides a pure Kotlin/KMP SHA-1 implementation with no extra dependencies,
exposed as `LegacyDigest.sha1(data)` in the `lyng.legacy_digest` package.

The naming deliberately signals that SHA-1 is cryptographically broken:
the object name `LegacyDigest` and prominent doc-comment warnings steer
users away from security-sensitive use while still enabling interoperability
with legacy protocols and file formats that require SHA-1.

API:
  import lyng.legacy_digest
  val hex: String = LegacyDigest.sha1("some string")   // UTF-8 input
  val hex: String = LegacyDigest.sha1(someBuffer)       // raw-byte input

Tests cover FIPS 180-4 known-answer vectors (empty, "abc", long message,
quick-brown-fox) at both the Kotlin and Lyng integration levels.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 19:51:04 +03:00
f145a90845 Fix method slot ID collision between instance and static methods
When createField() was called with a pre-assigned methodId, the ID was
used but methodIdMap was not updated and nextMethodId was not advanced.
This caused assignMethodId() for static methods to reuse slot IDs
already occupied by instance methods.

In complex.lyng, fromInt/imaginary got IDs 12/14 (same as plus/mul),
causing binary operator dispatch via CALL_MEMBER_SLOT to call the wrong
function (e.g. a*b would invoke imaginary instead of mul).

Fix: after computing effectiveMethodId in createField, always register
it in methodIdMap and advance nextMethodId past it so subsequent
auto-assignments start from a clean range.

Also pre-assigns method IDs for non-static fun/fn declarations during
class body pre-scan so forward references resolve correctly in class
bodies, and adds ComplexModuleTest coverage for operator slot dispatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 19:41:18 +03:00
2f145a0ea7 Fix nullable let member inference 2026-04-07 09:33:40 +03:00
15617f6998 more docs 2026-04-07 01:01:26 +03:00
583067780f Support object extension indexers 2026-04-07 00:49:51 +03:00
8386337c42 missing docs on object extension 2026-04-07 00:05:34 +03:00
83099148bd index return value inference fixed 2026-04-06 20:03:55 +03:00
1fca2b112f Fix parsing of generic extension functions 2026-04-06 19:29:06 +03:00
35628c8453 Support extensions on singleton objects 2026-04-06 19:24:28 +03:00
671583638b v1.5.5-SNAPSHOT started. compile if support 2026-04-06 11:09:14 +03:00
214f1aec9e v1.5.4 release 2026-04-05 06:34:30 +03:00
657c0c5d18 optimize VM: removed cmd.isFast 2026-04-05 06:12:49 +03:00
90718c3c17 optimize VM 2026-04-04 10:35:08 +03:00
d8454a11fc optimize arithmetics 2026-04-04 04:01:43 +03:00
161f3f74e2 fixed disabled concurrency in CLI 2026-04-03 23:42:43 +03:00
1cead7822a Prepare 1.5.4 release defaults and metadata 2026-04-03 23:28:09 +03:00