Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
arc619
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
1.
▲
by
arc619
6d ago
If you say so. > When you write a program to predict tokens based on context, seeding its context with something that makes it predict "self-reflecting" text is trivial. Program does what it is programmed to do. Would observing
2.
▲
by
arc619
7d ago
LLMs don't produce text at all, they produce probabilities of tokens. Tokens aren't text, they're high dimenensional coordinates in a latent "concept space". These are displayed to us as text, but this distinction i
3.
▲
by
arc619
7d ago
No language models are programmed, they are "grown" or evolved from data. There's no print statements or human entered logic involved in the raw model expression at all. The only thing that humans have programmed is efficient
4.
▲
by
arc619
7d ago
Well, certainly LLMs have imbibed our emotions, regardless of what people project onto them, and they do have real causal effects despite not being verbalised: https://www.anthropic.com/research/emotion-concepts-functio
5.
▲
by
arc619
7d ago
A video is a fixed representation. What if we can interact with this video, and it reacts in the same ways the source organism does? Then we put it in new situations that weren't in the source video, and it interacts in a similar way t
6.
▲
by
arc619
1y ago
Nim too, as it can use Zig as a compiler. There's also https://github.com/treeform/shady to compile Nim to GLSL. Also, more generally, there's an LLVM-IR->SPIR-V compiler that you can use for any language
7.
▲
by
arc619
2y ago
Behaviours don't have to be decoupled from the data they operate on. If I write a procedure that takes a particular data type as a parameter, it's a form of coupling. However, there's no need to fuse data and code together as
8.
▲
by
arc619
2y ago
Unfortunately, while OOP promises code reuse, it usually makes it worse by introducing boundaries as static architecture. OOP's core tenet of "speciating" processing via inheritance in the hope of sharing subprocesses does pr
9.
▲
by
arc619
2y ago
> It will not emit warnings saying it did that. You're right. I was sure I read that it would announce when it does a copy over a sink but now I look for it I can't find it! > The static analysis is not very transparent. The
10.
▲
by
arc619
2y ago
Nim is stack allocated unless you specifically mark a type as a reference, and "does not use classical GC algorithms anymore but is based on destructors and move semantics": https://nim-lang.org/docs/destructo
11.
▲
by
arc619
2y ago
Although it's not as extensive as Rust's lifetime management, Nim manages to infer lifetimes without specific syntax, so is it really a syntax issue? As you say, though, C++ template magic definitely has its limits.
12.
▲
by
arc619
2y ago
To be fair, you've posted a toy example. Real games are often chains of dependent systems, and as complexity increases, clean threading opportunities decrease. So, while yes it's nice in theory, in practice it often doesn't a
13.
▲
by
arc619
2y ago
Native Nim libs are definitely nicer, but being able to output C/C++/JS/LLVM-IR with nice FFI means you can access those ecosystems natively too. It's one reason the language has been so great for me, as I can write shar
14.
▲
by
arc619
3y ago
Personally, I think Python's success is down to the productivity of its peudocode-like syntax letting you hack prototypes out fast and easy. In turn, that makes building libraries more attractive, and these things build on each other.
15.
▲
by
arc619
3y ago
Interestingly, Delphi Pascal has a single pass compiler with generics, though I'm not sure about type inference. I was under the impression Go originally avoided generics more for a perceived abstract complexity for developers, the ide
16.
▲
by
arc619
3y ago
Shoot me an email at arctsint@proton.me Cheers!
17.
▲
by
arc619
3y ago
Types are stack allocated by default. "var data: MyObject" is on the stack. "var arr: array[1000, MyObject]" is allocated on the stack sequentially. Only dynamic seq or ref types use the heap by default.
18.
▲
by
arc619
3y ago
Reference semantics are part of the type. So "var i: int" is value, "var i: ref int" is a heap allocated reference that's deterministically managed like a borrow checked smart pointer, eliding reference counting if
19.
▲
by
arc619
3y ago
Too much string copying iirc. It was written a while ago. Hopefully it'll get updated/replaced some time, but there's plenty of faster 3rd party ones already.
20.
▲
by
arc619
3y ago
Of all the recent changes, default values is my favorite. Aside from generally useful and further reducing the need for initialisation boilerplate, I lets us guarantee valid state at compile time for things like enums - and, I assume, objec
21.
▲
by
arc619
3y ago
Looking forward to trying out this release! After programming professionally for 25 years, IMO Nim really is the best of all worlds. Easy to write like Python, strongly typed but with great inference, and defaults that make it fast and safe
22.
▲
by
arc619
3y ago
I should add that Nim still still has a 'separate language' for types, so doesn't quite fit OP's bill. Nevertheless, it's quite easy to build type constructs using statically resolvable expressions. I'd love to
23.
▲
by
arc619
3y ago
> Eventually we need to make type systems just metaprogramming using the primary language Nim is like this and its fantastic. None of the weird special rules for metaprogramming, just Nim code manipulating ASTs at compile time procedural
24.
▲
by
arc619
3y ago
That was fascinating, thanks. Please do consider posting this here as its own article, it would be interesting to read others comments. My reading of this - and please correct me if I'm wrong, I'm still learning - is that you'
25.
▲
by
arc619
3y ago
What you describe sounds like experiments with "generative agents". Check out https://arxiv.org/abs/2304.03442
26.
▲
by
arc619
3y ago
Your argument applies to style sensitivity as well to be fair - do you search for 'MyTestFunction' or 'my_TestFunction'... or was it 'My_TestFunction', maybe 'm_Y_tEsT_fUnCtION'? Style insensitivity l
27.
▲
by
arc619
3y ago
> That's a a compelling argument: GC/RC w/ stack allocation where possible. Indeed, it's a great combination that means you're productive and performant without really trying most of the time. The type system is
28.
▲
by
arc619
3y ago
Also, aside from the fact GC is optional in Nim, what are you thinking of that cant be done with a GC?
29.
▲
by
arc619
3y ago
Nim uses stack allocated value types by default, and GC (or ptr) is an optional tag to the type definition. GC types use borrow & move analysis like rust (not as good yet tho) so it can elide GC work when possible. GC is also not stop-t
30.
▲
by
arc619
4y ago
Agree with all of this. The Nim language might fit the bill of treating humans as first class citizens, and certainly fits better with my need for productivity and performance without over-specifying details. The language focuses on readabi
More ›