Hacker News new | past | comments | ask | show | jobs | submit | edwintorok's comments login

Do you have a link to the 'Small Android Phone'?



With OCaml 5 and effects it might be possible to use direct style, and rely on effect handlers to schedule IO. Here is an example of how structured concurrency in OCaml could look like https://ocaml.org/p/picos_std/latest/doc/Picos_std_structure...


That can be indeed very confusing when you initially learn the language. However there are 3 things that can help:

* An auto-formatter (ocamlformat integration in your editor, or ocaml-top) that shows how the actual nesting looks like

* You can add ;; at the end of a top-level function to get a syntax error at a better location

* Use the LSP integration of your editor which will show you where the error is as you type, so you catch the problem early


> Use the LSP integration of your editor which will show you where the error is as you type, so you catch the problem early

Yeah I do have this set up and it's a very good LSP, but unfortunately frequently if you get the nesting wrong the error is like "the entire rest of the file is wrong". It's often not very helpful.

That's not unique to OCaml. C style syntaxes can give "everything after this point is an error" if you get brackets wrong, but it's much easier to figure out what you did wrong.


Lets try it on itself: > add bullshit: Paste crap, get truth.

Output: > Revolutionize your digital content strategy by leveraging our cutting-edge AI-powered semantic transformation platform to seamlessly transmute suboptimal textual inputs into crystal-clear, paradigm-shifting prose that resonates with your target demographic and drives engagement metrics through the roof!

Use above as input and get as output: > Use our AI writing tool to make your crappy text suck less and maybe get some clicks.

Slightly different one as input: > add bullshit: Bullshit Remover. Paste crap, get truth.

Output: > Introducing our revolutionary Linguistic Veracity Enhancement Solution™! This cutting-edge, AI-powered content optimization platform seamlessly transforms convoluted verbiage into streamlined, high-impact messaging. Simply input your suboptimal text, and our proprietary algorithms will distill it into pure, unadulterated truth nuggets. Elevate your communication paradigm today!

Reverse: > Bullshit translator: We made an app that cuts the crap out of your writing. It's not revolutionary, it's just a fancy spell-check. But hey, at least you'll sound less like a pompous ass when you use it.

Again: > We made an app that edits your writing. It's basically spell-check on steroids. It'll make you sound less pretentious.

Again: > We made a glorified spell-checker. It'll stop you sounding like a pompous ass.

Again: > We made a fancy autocorrect. It'll keep you from sounding like a pretentious jerk.

Again: > We made spellcheck. It'll stop you sounding like an idiot.

Again: > We fixed your typos. You're welcome.

Again: > We changed your words without asking. Deal with it.

...


TCP has a lot of offloads that may not all be available for UDP.


How do you find out what that keyboard shortcut is? I only found out when reading a similar article as the OP many years ago that complained about the removal of the textbox.

Otherwise I never would've known it is possible to activate the path textbox with a keyboard shortcut.

A UI needs to be both easy to use and discoverable. If "power users" have trouble discovering where the features they need are, why do we think the rest of the UI is easy to use/discoverable for everyone else?

(Although TBH I rarely use UI, and normally just use the terminal, except when upgrading the firmware of my keyboard, in which case I use Jade's file manager).


I only know that shortcut because I use in the browser already.


Is there a case where Google Docs or LibreOffice cannot open a docx or pptx correctly? I haven't used Word or Excel since their '97 version. Even at work I can't remember a situation where I specifically needed the MS implementation.


You probably already know, but with OCaml 5 the only way to get flamegraphs working is to either:

* use framepointers [1]

* use LBR (but LBR has a limited depth, and may not work on on all CPUs, I'm assuming due to bugs in perf)

* implement some deep changes in how perf works to handle the 2 stacks in OCaml (I don't even know if this would be possible), or write/adapt some eBPF code to do it

OCaml 5 has a separate stack for OCaml code and C code, and although GDB can link them based on DWARF info, perf DWARF call-graphs cannot (https://github.com/ocaml/ocaml/issues/12563#issuecomment-193...)

If you need more evidence to keep it enabled in future releases, you can use OCaml 5 as an example (unfortunately there aren't many OCaml applications, so that may not carry too much weight on its own).

[1]: I haven't actually realised that Fedora39 has already enabled FP by default, nice! (I still do most of my day-to-day profiling on an ~CentOS 7 system with 'perf record --call-graph dwarf -F 47 -a', I was aware that there was a discussion to enable FP by default, but haven't noticed it has actually been done already)


No, LBR is an Intel-only feature.


https://www.phoronix.com/news/AMD-Zen-4-LbrExtV2 LBR is supposed to work on AMD too, except it doesn't. I'll have to open a bug report (it records the data, it just can't parse it afterwards)


Also, if you want LBR on Zen3 or earlier, you're SOL. I noticed that one the hard way.

Stuff like this is making me lean more towards getting an Intel for my next computer, at least on desktop where their worse power efficiency is less of an issue. But then they keep gating AVX-512 due to their E-cores not supporting it... You really can't win these days.


Interesting, I had the opposite experience: the GUI was very slow and nearly unusable on most RISC-V boards that I have, except the LicheePi4a. But that is probably just due to the GPU (which unfortunately doesn't have open source drivers yet?), and not the CPU, and they're all running different kernels and distros. When I have some time I'll need to compare again with the latest distro available for each, and also a fully open source one.


re: GPU, mesa3d side (vulkan driver) is merged upstream. OpenGL/CL/GLES are via Zink.

powervr is working into getting the drm side merged to the kernel, too.


You have to keep in mind that since RISC-V is an ISA standard, C[gcc] coded kernels are here for legacy support purpose. The C[gcc] language is not appropriate anymore, assembly coded is the right(tm) way.


What is this supposed to mean? You think someone is going to rewrite linux in assembly language?


The description of interaction nets sounds a bit like hash-consing, with some extra optimisations.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: