proomt

Search

Search posts, papers, and topics

All posts

CodeName OneShai Almog6 min readintermediate

Build Hints That Fail Before the Build Server

Summary

Codename One moved 87 common build hints into Java annotations, so misspelled keys or wrong value types cause compile‑time errors instead of silent build‑server ignores. The annotations are processed back into the existing string protocol, keeping backward compatibility while improving validation and IDE support.

  • Common build hints are now expressed as Java annotations, letting javac catch misspellings and type errors at compile time.
  • The annotation processor converts annotations back to the original key/value format, preserving compatibility with existing build servers.
  • Migration is automated via `mvn cn1:migrate-build-hints`; hints without annotations remain in `codenameone_settings.properties`.
  • Unset annotation attributes emit no hint, deferring to server defaults; `Toggle` enum preserves three‑state semantics instead of a boolean default.

Mobile developers using Codename One and build‑system maintainers should care because compile‑time validation prevents silent misconfigurations that can cause runtime issues.

6/10

Related reading

  1. Eliminating AI Code Hallucinations with TypeScript Compiler Diagnostics and TDD Loops

    The article shows how to replace raw TypeScript compiler output with a programmatic JSON feedback loop that merges diagnostics and Vitest test failures, feeding the structured data back to an LLM coding agent for self‑correction. It provides concrete code for extracting, enriching, validating, and de‑duplicating errors, and demonstrates token savings and deterministic iteration until compilation…

    SitePointsitepoint.com15 min
  2. Article: Your Next DSL Author Is a Language Model

    Typed Domain Grounding (TDG) embeds a DSL inside a mainstream language the LLM already knows (e.g., Kotlin) and uses the host compiler as an oracle. The author describes five building blocks—embedding, choosing a host language with high training‑data frequency, compiler‑driven type safety, a generate‑compile‑repair loop, and an on‑demand teaching tool—and shows measured results from kUML, a Kotli…

    InfoQinfoq.com18 min
  3. VoIP, VPN, and the Build System Behind Them

    Codename One’s new builder pipeline can automatically generate the native plumbing required for VoIP call integration, managed VPN profiles, and packet‑tunnel extensions on iOS and Android. By inspecting which Java packages an app imports, the builder adds the necessary frameworks, entitlements, services, and even a separate signed Network Extension for iOS, letting developers keep their signalin…

    CodeName Onecodenameone.com10 min
  4. App Intents: One Java Declaration for Siri, Spotlight, and Shortcuts

    Codename One adds @AppIntent annotations that let a static Java method be exposed as a Siri, Spotlight, or Android shortcut. The build‑time processor generates native declarations, a reflection‑free dispatch table, and validates the intent metadata. Handlers can be headless, accept typed parameters, return results, and be invoked internally via Intents.invoke(). Entities enable system‑driven disa…

    CodeName Onecodenameone.com5 min
  5. Bend 2 and the Vibe-Coding Trap

    The author argues that “vibe‑coding” with LLMs can cause engineers to reinvent existing solutions, using Bend 2—a language that asks LLMs to write long formal proofs—as a case study. By re‑implementing the same demo in SPARK/Ada, the author shows that established formal‑verification tools achieve the same guarantees with a tiny proof, highlighting the need for domain research before prompting LLM…

    Hacker News front pageliampwll.com5 minHN326235
  6. Pros and Cons of Unified Build

    Unified (jumbo) builds concatenate multiple C++ source files to reduce header instantiation, often halving cold compile time. However, they hurt incremental rebuilds, cache efficiency, and can change program semantics, making reproducibility and correctness harder.

    Mozilla Automation Teamgithub.io8 minHN1