Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Jeff – Jev-compatible 0.8B decision models, trained at home, ~30 ms (github.com/firelex)
    79comments
  2. Pirating the Pirates (mubi.com)
    206comments
  3. 12,000-year-old Göbeklitepe burials explain scattered bones (archaeologymag.com)
    15comments
  4. MicroLLM Lab – Try 7 tiny LLM's in the browser (stateofutopia.com)
    56comments
  5. Scientists solve 1840s space weather mystery (arstechnica.com)
    29comments
  6. Sonnet 5.5 (anthropic.com)
    376comments
  7. World Labs Is Joining AMD (worldlabs.ai)
    64comments
  8. What is the best shape of a city? Modelling effect of urban form on distance (sagepub.com)
    5comments
  9. Hijacking the PS5's RTMP stream (yashgarg.dev)
    61comments
  10. Kids turned low-traffic NPR Spotify comments into a secret group chat (thisamericanlife.org)
    168comments
  11. Parley: Federated, decentralised chat that speaks plain IRC (mills.io)
    167comments
  12. What reversing, modernising old games tells us about the economic impact of AI (isfine.org)
    13comments
  13. It's Time to Investigate the AI Labs (calnewport.com)
    83comments
  14. Does Reddit have an astroturfing problem? What the data suggests (petervijeh.com)
    125comments
  15. 3D necroprinting: Leveraging biotic material as the nozzle for 3D printing (science.org)
    6comments
  16. California farmers are struggling to sell grapes as demand for wine drops (kqed.org)
    57comments
  17. Nvidia wants to put a watchdog chip next to every AI agent (cnbc.com)
    139comments
  18. ESP32S3 cluster running 1.58-bit (BitNet) Language model (github.com/low-zi-hong)
    1comments
  19. Show HN: HN.watch – Videos of all Hacker News posts (hn.watch)
    78comments
  20. Joseph Szabo’s pictures of American adolescents (newyorker.com)
    40comments
  21. Cf: The Agentic CLI for the Cloudflare API (cloudflare.com)
    44comments
  22. How to win a beer with high-dimensional statistics (jamiesimon.io)
    —discuss
  23. First Steps of the PLC Organization – Independent Public Ledger of Credentials (plcred.org)
    19comments
  24. Behold the pawpaw (cbc.ca)
    8comments
  25. Updated Google Maps shows destruction of the city of Rafah (twitter.com/aliabunimah)
    96comments
  26. Show HN: Destroy Any Website with Stickman (spritefusion.com)
    27comments
  27. Deutsche Bahn "joke" is no longer funny (jonworth.eu)
    7comments
  28. What heraldry and Japanese mon can teach about visual-identity generators (benovermyer.com)
    21comments
  29. Launch HN: Vespper (YC F24) – SOTA Docx MCP (vespper.com)
    8comments
  30. Who wrote Elizabeth I's most scathing letters? (smithsonianmag.com)
    21comments

Lazarus 2.0.0

74 pointsby 7y agoforum.lazarus-ide.org
15 comments
7y agoHN ↗

TL;DR:

Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development using the Free Pascal compiler

7y agoHN ↗

Lazarus amazes me as a free and opensource software project. So much hard work and dedication. Congrats!

7y agoHN ↗

So while I'm not exactly user of Lazarus other developer on our humble open source project uses it for our map editor. Screenshots might look dated and ugly, but it's much closer to being working solution for cross-platform desktop applications than many would imagine it to be.

Pros: super easy to serialize data, compilation is fast, easy to avoid crashes.

Cons: version packaged in Debian is far from perfect, some UI bindings are not very stable on macOS for instance.

7y agoHN ↗

The previous link was for RC3 this one is for the actual release.

Title might be better if it was 'Lazarus 2.0 released' maybe.

7y agoHN ↗

Would also like to see this un-duped. The discussions around Lazarus are always interesting.

7y agoHN ↗

Sent them a mail about this. Let's see what happens.

7y agoHN ↗

This post isn't different enough from the previous one to justify a second major thread in the same month. We understand how cool this project is. It's just that frontpage space is scarce on HN and the hivemind is sensitive to repetition.

People come to HN to escape repetition—except of their favorites, of course, which they love to see repeated. Everybody's favorites are different, so for an overall solution we need to regulate repetition.

Even when they aren't strictly reposts, we mark a story as a dupe if (a) it has had significant attention in the last year, and (b) the new post doesn't add significant new information (See https://news.ycombinator.com/newsfaq.html and https://hn.algolia.com/?query=%22significant%20new%20informa...).

Project-release threads tend not to be about the incremental features in the new release but rather free-ranging discussion of the project in general. That's fine, but about one per project per year is the right amount for HN to host. That gives us a good mix of projects to discuss while still leaving space for other things.

7y agoHN ↗

Man, thanks for killing this entry. :(

7y agoHN ↗

Interesting tidbit: Free Pascal, used by Lazarus, has no garbage collector nor automatic destructors for dynamic memory.

This makes it one of the few modern languages where you have to manually free all child pointers (like in C).

7y agoHN ↗

Actually it does have automatic destructors, they're just not the default option.

The first way to auto destroy objects is to expose an Interface and free your object in the Release method. You can inherit from several class types that already do that if you don't want to rewrite a new class.

The second way is a newer feature that allows you to define Initiazlize and Finalize methods on any complex type. When you define these methods, the compiler generates code to reference count your object and call Initazlize on create, and Finalize when your object is no longer referenced. This works the same on stack based types as well as heap allocated types.

See also http://wiki.freepascal.org/management_operators

7y agoHN ↗

Sweet! The docs say "since version 3.1.1", and the latest release seems to be 3.0.4, so I guess this has not been released yet?

Do you think that the changes help with simpler algorithms -- like in StringHashList [0], where destructor specifically calls Dispose on each array element, and then deletes the array storage itself?

[0] https://github.com/graemeg/lazarus/blob/95d183bacd5f895d3e6c...

7y agoHN ↗

The odd minor versions are never released as official builds, but they are official versions. You'll need to build it yourself which isn't that hard. Keep in mind fpc, the compiler, is separate from Lazarus, but if you want to use Lazarus with fpc 3.1.x you need to build Lazarus using fpc 3.1.x. Again it's not that hard (make all).

The change we're talking about automatically invokes Initialize and Finalize on all types for dynamic allocations / destruction, unless they intentionally circumvent it. Intentional circumvention might include allocating raw memory in a class and treating the class like an array with an index property. In other words, if you declare a raw pointer, allocate untyped memory (e.g. bytes), and handle something back from that memory using a typecast, then you are bypassing automatic allocation and destruction.

All other ways to make space for complex types (records and classes) as well as types which may hold complex types (arrays and nested fields) will safely and reliably use Initialize and Finalize when needed if they are defined.