kevinlawler / kona

Open-source implementation of the K programming language
ISC License
1.36k stars 138 forks source link

k4-k7? #573

Open ngn opened 4 years ago

ngn commented 4 years ago

not a bug, just a question for kona devs: do you intend to mimic a more recent dialect than k3 in the future?

tavmem commented 4 years ago

No. I can't speak for the other 23 contributors to Kona, but I have no plans for a more recent dialect.

I think that you are doing a really good job on a k7 subset already ... though as you say ... it is not FOSS, but you can can do with it what you want.

ngn commented 4 years ago

thanks. actually i'm targetting k5-k6 syntax now and i'm trying to assess if k7 would be worth following.

is it due to lack of resources (time, motivation, number of active contributors, ..) that you prefer to stick with k3 or something in the language itself?

tavmem commented 4 years ago

My future plans ...

tavmem commented 4 years ago

One additional point regarding my stance on not replicating a more recent dialect:

When I started working on Kona (an implementation of k3), ATW had already moved on to q and KDB. k3 was obsolete and no longer available from kx Systems.

I am not sure, but it seems that k5-k6 is still part of the production product available for sale from kx Systems. k7 (shakti k) is currently the primary product available from Shakti.

I am uncomfortable trying to replicate someone else's current product line as FOSS.

ngn commented 4 years ago

k5-k6

i thought those died with kos and only k4 survived as q

uncomfortable

i've no qualms but no great hopes either

tavmem commented 4 years ago

Thanks for the clarification (I haven't been following the different versions). Looks like k4 and k7 are off limits (for me), but k5-k6 might be fair game.

Still, I would rather focus on using k7 and Python than trying to replicate k5-k6.

ngn commented 4 years ago

afaik shakti has no dependency on python, and anaconda is used only to distribute binaries for the trial version

there's a shakti-python bridge (thanks to alexander belopolsky), separate from the interpreter

tavmem commented 4 years ago

I agree. I did not think that k7 had a dependency on Python.. The Shakti website does mention "3rd party language APIs (Python, Julia etc.)". Both are excellent tools for data science, and I'm interested.

But to get back to the original question ... k3 was a successful, important language, with a reference manual, but is no longer available. k4 and k7 are off limits (for me). k5 and k6 "died with kos", and were never successful.

My plan:

bakul commented 4 years ago

It will be a very long while before any open source clone of k7 gets anywhere close to Whitney's work in terms of completeness and performance and most likely by then he would have moved on to k8 or even k9! Woof!

But IMHO it is worth thinking about building a good platform for experiments in array processing. What I would suggest is to separate the frontend and the backend. Something like

frontend -> abstract array assembly language -> backend

More than one array language can then make use of the backend. The backend can also be evolved separately. e.g. using vector processing native instructions or even transparently distribute (very large) computations across machines or even JIT compiling it etc. Now I don't mean building something elaborate like llvm but something much more constrained and streamlined. No idea if this is even feasible but something I think about now and then!

ngn commented 4 years ago

It will be a very long while before any open source clone of k7 gets anywhere close to Whitney's work in terms of completeness and performance and most likely by then he would have moved on to k8 or even k9! Woof!

it's a losing battle but it must be fought

abstract array assembly language

like bytecode?

bakul commented 4 years ago

abstract array assembly language

like bytecode?

Yes. But where memory, stack and any registers hold k objects. The trick would be to find the "right cut". We should take this offline if any interest.

gitonthescene commented 1 year ago

FWIW, I haven’t completely grokked what @ktye is doing here but my understanding is that there is some intermediate language that stuff is compiled to which might fit the description above.