#kittyscript — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #kittyscript, aggregated by home.social.
-
The #Kittyscript compiler (as per it's current concept) has three phases: parser, midend and backend.
The parser and the backend can be switched out to use different source languages and targets.
The input to the midend is a Lisp-like tree of lists, symbols and literals. The midend applies compiler plugins and macros that can access and modify the environment of their surrounding expression, and calls itself recursively.
I'm currently thinking hard about what the midend's output structure looks like. It doesn't need to be immediately serializable, just like how the input expressions don't need to be serializable either, because the compiler stages run inside the same Kittyscript process. (The in-Kittyscript part of a backend stage can also choose to just dump it into a byte stream to feed into a separate compiler system like LLVM)
My idea for the midend output is still vague, but it might be a Pascal-like semantic structure where the variables are explicit and not declared by the statements (the midend already collected all the variables declared in the block) and closures are explicitly getting passed their enclosed variables (the midend has already tracked which variables get used in the closure). -
The #Kittyscript compiler (as per it's current concept) has three phases: parser, midend and backend.
The parser and the backend can be switched out to use different source languages and targets.
The input to the midend is a Lisp-like tree of lists, symbols and literals. The midend applies compiler plugins and macros that can access and modify the environment of their surrounding expression, and calls itself recursively.
I'm currently thinking hard about what the midend's output structure looks like. It doesn't need to be immediately serializable, just like how the input expressions don't need to be serializable either, because the compiler stages run inside the same Kittyscript process. (The in-Kittyscript part of a backend stage can also choose to just dump it into a byte stream to feed into a separate compiler system like LLVM)
My idea for the midend output is still vague, but it might be a Pascal-like semantic structure where the variables are explicit and not declared by the statements (the midend already collected all the variables declared in the block) and closures are explicitly getting passed their enclosed variables (the midend has already tracked which variables get used in the closure). -
@argv_minus_one If I may shill my future projects a little:
I plan on starting a tech company, #Lunatronex, with a hardware division to be called Strawberry.
Strawberry won't sell "smartphones", but there will be offered pocket computers with a cell modem that can do everything a smartphone can AND everything a PC can. They'll run KittyOS, the #Kittyscript based OS I want to write at some point.
Getting root privileges on KittyOS will be as easy as flipping a checkbox in expert settings. No external hardware required, no pointless restrictions or wait times. KittyOS expert settings won't require a secret trick to enable like Android's developer settings with their "tap the build number seven times" thing.
And the bootloader will be unlocked by default. No bullshit like "anti rollback" or anything like that. Install whatever OS you want with no pointless obstacles or bricking risks. -
@argv_minus_one If I may shill my future projects a little:
I plan on starting a tech company, #Lunatronex, with a hardware division to be called Strawberry.
Strawberry won't sell "smartphones", but there will be offered pocket computers with a cell modem that can do everything a smartphone can AND everything a PC can. They'll run KittyOS, the #Kittyscript based OS I want to write at some point.
Getting root privileges on KittyOS will be as easy as flipping a checkbox in expert settings. No external hardware required, no pointless restrictions or wait times. KittyOS expert settings won't require a secret trick to enable like Android's developer settings with their "tap the build number seven times" thing.
And the bootloader will be unlocked by default. No bullshit like "anti rollback" or anything like that. Install whatever OS you want with no pointless obstacles or bricking risks. -
I just scavenged Ada's type system for #Kittyscript inspiration.
I might put these ideas into Kittyscript. Some of the ideas I already had before, some are new and need refining.
- "Limited" types that disallow a direct copy. (similar to Rust types without the Copy trait)
- Specifying custom numeric types by range and precision, including non-binary and non-decimal. (Dynamic Kittyscript already has a BigRational type allowing arbitrary integer fractions)
- "Modular" (wraparound integer) types. I think I will build those as functions on top of normal integers/numbers though, instead of as types.
- Arrays indexed by arbitrary discrete scalar types, like ranged integers, character codepoints and even enums. Can be implemented as a hashmap in dynamic code.
- Types with "discriminator", like an integer or enum value that influences the structure of the rest of the type. Practical examples: size of an array, variant of a union.
Edit: added practical examples to discriminator types. -
I just scavenged Ada's type system for #Kittyscript inspiration.
I might put these ideas into Kittyscript. Some of the ideas I already had before, some are new and need refining.
- "Limited" types that disallow a direct copy. (similar to Rust types without the Copy trait)
- Specifying custom numeric types by range and precision, including non-binary and non-decimal. (Dynamic Kittyscript already has a BigRational type allowing arbitrary integer fractions)
- "Modular" (wraparound integer) types. I think I will build those as functions on top of normal integers/numbers though, instead of as types.
- Arrays indexed by arbitrary discrete scalar types, like ranged integers, character codepoints and even enums. Can be implemented as a hashmap in dynamic code.
- Types with "discriminator", like an integer or enum value that influences the structure of the rest of the type. Practical examples: size of an array, variant of a union.
Edit: added practical examples to discriminator types. -
#Kittyscript's design is kinda between a (Scheme-y) Lisp and Lua tbh.
The vararg and multiple return handling is very similar to Lua 5.5 (even before that version released).
The method handlers kinda work like Lua's metatables except that they're functions instead of tables. They're also used for general method calls.
The records (which user defined objects will be built upon) are very similar to Scheme.
It has Lisp-style cons pairs.
Kittyscript has dynamically typed semantics. There will be an optional static type system though.
Kittyscript uses the same falsiness as Lua (null and false are false, everything else is true)
It will have Lisp-style macros. The macros will be able to read and modify the context of the expression, and return any expression they want.
The default textual syntax hasn't been decided yet, probably will be something similar to Javascript, Java, Kotlin or Lua. There'll also be a Lisp style parentheses syntax available.
I might make a Lua mode for Kittyscript that parses Lua code and runs it through the Kittyscript compiler. -
#Kittyscript's design is kinda between a (Scheme-y) Lisp and Lua tbh.
The vararg and multiple return handling is very similar to Lua 5.5 (even before that version released).
The method handlers kinda work like Lua's metatables except that they're functions instead of tables. They're also used for general method calls.
The records (which user defined objects will be built upon) are very similar to Scheme.
It has Lisp-style cons pairs.
Kittyscript has dynamically typed semantics. There will be an optional static type system though.
Kittyscript uses the same falsiness as Lua (null and false are false, everything else is true)
It will have Lisp-style macros. The macros will be able to read and modify the context of the expression, and return any expression they want.
The default textual syntax hasn't been decided yet, probably will be something similar to Javascript, Java, Kotlin or Lua. There'll also be a Lisp style parentheses syntax available.
I might make a Lua mode for Kittyscript that parses Lua code and runs it through the Kittyscript compiler. -
My current concept for the #Kittyscript compiler involves compile-time side effects. But because a later expression can change a previous expression and potentially remove it, it needs to have a way to roll back side effects too, at least the effects on the compilation output object. For example an expression defining a function must be able to delete the function if the expression gets removed. This could probably be handled with an optional cleanup callback, kinda like React's useEffect. -
My current concept for the #Kittyscript compiler involves compile-time side effects. But because a later expression can change a previous expression and potentially remove it, it needs to have a way to roll back side effects too, at least the effects on the compilation output object. For example an expression defining a function must be able to delete the function if the expression gets removed. This could probably be handled with an optional cleanup callback, kinda like React's useEffect. -
@jakehamilton I would add my already started project of #Kittyscript, a programming language system that is supposed to allow plugins for any input syntax (even mixing multiple syntaxes in one file), plugins for compile-time processing (macros, type systems…) and plugins for any output language (machine code, Java bytecode, Javascript, WebAssembly). It is supposed to be a programming language with a simple but flexible core that's easy to learn yet powerful enough for the most complex tasks. -
@jakehamilton I would add my already started project of #Kittyscript, a programming language system that is supposed to allow plugins for any input syntax (even mixing multiple syntaxes in one file), plugins for compile-time processing (macros, type systems…) and plugins for any output language (machine code, Java bytecode, Javascript, WebAssembly). It is supposed to be a programming language with a simple but flexible core that's easy to learn yet powerful enough for the most complex tasks. -
@hsza @david_chisnall @tasket modular software design is already something I'm trying to do with the #Kittyscript programming language I'm developing, where the standard library is modularized. -
@hsza @david_chisnall @tasket modular software design is already something I'm trying to do with the #Kittyscript programming language I'm developing, where the standard library is modularized. -
CW: Linux meta
Linus Torvalds apparently thinks the ethics of FOSS are secondary and using AI in such a central and complex project is fine. He is completely missing the point of FOSS in my opinion.
I hope that there eventually will be a widespread FOSS kernel that's developed by people who actually care about ethics. Maybe a fork of Linux, maybe a fork of BSD, maybe something developed from scratch entirely.
Maybe even a kernel I will have developed for KittyOS, written in #Kittyscript (the very cool programming language I'm developing… although currently at a very slow and sporadic pace). -
CW: Linux meta
Linus Torvalds apparently thinks the ethics of FOSS are secondary and using AI in such a central and complex project is fine. He is completely missing the point of FOSS in my opinion.
I hope that there eventually will be a widespread FOSS kernel that's developed by people who actually care about ethics. Maybe a fork of Linux, maybe a fork of BSD, maybe something developed from scratch entirely.
Maybe even a kernel I will have developed for KittyOS, written in #Kittyscript (the very cool programming language I'm developing… although currently at a very slow and sporadic pace). -
Lisp-style macros could probably eliminate a lot of the "need" for LLMs and other, more deterministic forms of source code generation.
#Kittyscript will have Lisp-style macros! -
Lisp-style macros could probably eliminate a lot of the "need" for LLMs and other, more deterministic forms of source code generation.
#Kittyscript will have Lisp-style macros! -
Today's #Kittyscript design thoughts topic: The structure of the compiler mid-end.
My current concept is that there's a mutable compilation context object that's fed expressions that add expressions/statements to the current function, or install callbacks, while being able to read the context. The callbacks do things like reacting to a variable being defined syntactically after the point of reference, where the callback then sets the reference to the now defined variable. Lambdas or nested scopes create a new compilation context that partially reads/writes through to its parent context.
Library and user plugins can add arbitrary additional behavior to compilation.
RE: https://void.lgbt/objects/3c7abb8e-f7a4-4b2a-8aad-928bb5e3f49d -
Today's #Kittyscript design thoughts topic: The structure of the compiler mid-end.
My current concept is that there's a mutable compilation context object that's fed expressions that add expressions/statements to the current function, or install callbacks, while being able to read the context. The callbacks do things like reacting to a variable being defined syntactically after the point of reference, where the callback then sets the reference to the now defined variable. Lambdas or nested scopes create a new compilation context that partially reads/writes through to its parent context.
Library and user plugins can add arbitrary additional behavior to compilation.
RE: https://void.lgbt/objects/3c7abb8e-f7a4-4b2a-8aad-928bb5e3f49d -
Today I spent way too much effort on trying to come up with semantics for the representation of #Kittyscript values as values of the target language. (Kittyscript will have the ability to compile to source of other languages) I decided it's an implementation detail of the compiler backend for the respective target, able to be influenced by annotations that can be ignored by incompatible backends. -
Today I spent way too much effort on trying to come up with semantics for the representation of #Kittyscript values as values of the target language. (Kittyscript will have the ability to compile to source of other languages) I decided it's an implementation detail of the compiler backend for the respective target, able to be influenced by annotations that can be ignored by incompatible backends. -
@ifixcoinops What do you think about the name of my programming language project Kittyscript? The name is cat themed and an originally unintended pun on script kiddie.
#Kittyscript -
@ifixcoinops What do you think about the name of my programming language project Kittyscript? The name is cat themed and an originally unintended pun on script kiddie.
#Kittyscript -
CW: Gushing about my own plans for the future
@siege Dual transgender/transspecies people researching and implementing new ways to modify people's bodies in gender- and species-affirming ways, for example synthetic or genetically engineered body parts. That's what I aspire to become. I want to make species transition a reality. And the tech developed for that could probably also improve gender-only transitions - if you can make a body grow cat ears, cat fur, functioning wings or a tail, you probably can do it with ovaries or testicles too.
That's one of the big goals of my future tech company I'll call #Lunatronex, centered about empowering people. Another project of that general goal that I already started work on (but progress is much slower than I'd like because I'm doing it on the side while holding a wage job) is the #Kittyscript programming language, intended to be able to be used by end-users to script and extend applications, but also as a universal purpose programming platform. -
CW: Gushing about my own plans for the future
@siege Dual transgender/transspecies people researching and implementing new ways to modify people's bodies in gender- and species-affirming ways, for example synthetic or genetically engineered body parts. That's what I aspire to become. I want to make species transition a reality. And the tech developed for that could probably also improve gender-only transitions - if you can make a body grow cat ears, cat fur, functioning wings or a tail, you probably can do it with ovaries or testicles too.
That's one of the big goals of my future tech company I'll call #Lunatronex, centered about empowering people. Another project of that general goal that I already started work on (but progress is much slower than I'd like because I'm doing it on the side while holding a wage job) is the #Kittyscript programming language, intended to be able to be used by end-users to script and extend applications, but also as a universal purpose programming platform. -
CW: work and climate complaining
On the way home from work. I left early because I was sick of it. It's so damn hot in the office despite our room being on the north side of the building. At least at home I can take off my shirt… but nah, corporate wants us in the office at least two days a week. And there's rumors the CEO would like to increase that to three days.
If the current labor market wasn't so ridiculously employer-friendly, I would consider changing jobs, but in this market I probably will only find worse jobs.
I wish I wasn't practically forced to work a capitalist job. I could work on #Kittyscript for hours every day, it probably being production ready already, instead of my productive energy already being drained from the money job and Kittyscript development going at a sporadic pace of like an hour per month. -
CW: work and climate complaining
On the way home from work. I left early because I was sick of it. It's so damn hot in the office despite our room being on the north side of the building. At least at home I can take off my shirt… but nah, corporate wants us in the office at least two days a week. And there's rumors the CEO would like to increase that to three days.
If the current labor market wasn't so ridiculously employer-friendly, I would consider changing jobs, but in this market I probably will only find worse jobs.
I wish I wasn't practically forced to work a capitalist job. I could work on #Kittyscript for hours every day, it probably being production ready already, instead of my productive energy already being drained from the money job and Kittyscript development going at a sporadic pace of like an hour per month. -
@ireneista Kittyscript's first complex thing was continuations (in an implementation language without support for them or tail calls), implemented by tracking my own stack
the most relevant class is KsEngine.
#Kittyscript #LangDev -
@ireneista Kittyscript's first complex thing was continuations (in an implementation language without support for them or tail calls), implemented by tracking my own stack
the most relevant class is KsEngine.
#Kittyscript #LangDev -
CW: (Lack of) Kittyscript development progress
I haven't written any code for Kittyscript last weekend or this weekend yet.
Last weekend I was doing parsing research that involved starting to reimplement the parser system from Proto-Kittyscript and a similar parser I wrote at my wage job, but I ended up finishing that in the wage job codebase. The reimplementation in my personal codebase didn't even get far enough to replicate the previously existing code. I wanted to see if my parser system is fundamentally capable of handling left recursion with some tweaks. It does work but is slower in performance.
This weekend I was thinking about the Kittyscript compiler's flow, and whether to use a mutable or immutable structure for the compilation context. Advantage of immutable: could be interleaved with the parser for context sensitive parsing, because backtracked parse parts don't destroy the context. Advantage of mutable: Easier to understand how to use callbacks to respond to context changes after the location of the expression (Example: A variable or function is used before its declaration, so it can place a callback that will be invoked once a variable or function with that name is declared further down).
There's a nonzero but small chance I will write some code today still.
#Kittyscript #LangDev -
CW: (Lack of) Kittyscript development progress
I haven't written any code for Kittyscript last weekend or this weekend yet.
Last weekend I was doing parsing research that involved starting to reimplement the parser system from Proto-Kittyscript and a similar parser I wrote at my wage job, but I ended up finishing that in the wage job codebase. The reimplementation in my personal codebase didn't even get far enough to replicate the previously existing code. I wanted to see if my parser system is fundamentally capable of handling left recursion with some tweaks. It does work but is slower in performance.
This weekend I was thinking about the Kittyscript compiler's flow, and whether to use a mutable or immutable structure for the compilation context. Advantage of immutable: could be interleaved with the parser for context sensitive parsing, because backtracked parse parts don't destroy the context. Advantage of mutable: Easier to understand how to use callbacks to respond to context changes after the location of the expression (Example: A variable or function is used before its declaration, so it can place a callback that will be invoked once a variable or function with that name is declared further down).
There's a nonzero but small chance I will write some code today still.
#Kittyscript #LangDev -
@monoidmusician @ireneista That's one of the goals of my own programming language project, #Kittyscript. It will come with an easy to use parser combinator system for making and mixing syntaxes, a core based on a Lisp- and XML-like (allows arbitrary named attributes) syntax tree structure, and pluggable backends for different targets like Javascript, portable C code (to make Kittyscript not limited to platforms with LLVM support!), Java bytecode or WebAssembly. -
@monoidmusician @ireneista That's one of the goals of my own programming language project, #Kittyscript. It will come with an easy to use parser combinator system for making and mixing syntaxes, a core based on a Lisp- and XML-like (allows arbitrary named attributes) syntax tree structure, and pluggable backends for different targets like Javascript, portable C code (to make Kittyscript not limited to platforms with LLVM support!), Java bytecode or WebAssembly. -
By the way, this kind of bullshit is part of why I want to develop #Kittyscript and start my own tech company (#Lunatronex): to create hardware and software such that nobody has to endure this crap anymore.
RE: https://void.lgbt/objects/3e487418-f221-413a-af9b-6770899b3a76 -
By the way, this kind of bullshit is part of why I want to develop #Kittyscript and start my own tech company (#Lunatronex): to create hardware and software such that nobody has to endure this crap anymore.
RE: https://void.lgbt/objects/3e487418-f221-413a-af9b-6770899b3a76 -
CW: ranting about the mandate of employment under crapitalism
I hate having to work a capitalist job to survive. I hate being forced into the office twice a week, wasting four hours every week just on public transport there and back.
It takes me an hour each way, while by car it would be under 20 minutes in good traffic. I could drive to the office, drive back home and drive back to the office again in the time I currently need to get there because I don't have a driver's license yet.
I hate being paid less than my coworkers despite me being nearly as skilled as them just because I have less calendar years of work experience and when I was asked in the job interview how much salary I wanted I asked for so little that it was below the minimum range for the position, so I got the minimum range as the salary and only sub-inflation raises since.
I don't have much hope in switching companies, because my current coworkers and boss are pretty accepting of my gender, neurodivergence and ethnicity, and I have a 30 hour workweek (at 75% salary) and 60% remote work.
If I were to switch, I would buy the metaphorical cat in the bag, because no racist/transphobic/anti-neurodivergent company would be honest enough to put that fact in the job description, and "return to office" has been a marketwide trend unfortunately. Add to that that Germany is taking part in the worldwide recession and that'll just make it even harder to find a job that'll actually hire me. My current employer is barely hiring anybody anymore despite several departments being very much understaffed.
Also our current chancellor wants to abolish part-time work, and I can just about handle the 30 hours. When I had 40 hour weeks with daily commuting in my job training I was always very tired and drained despite no real productivity demands and an autism-oriented environment. I don't think I could handle a 40 hour job.
I wish I didn't have to toil away for a capitalist to be allowed to access my needs. I could spend the time and energy developing #Kittyscript and other cool useful tech stuff instead. Or draw SFW and NSFW meltcats. -
CW: ranting about the mandate of employment under crapitalism
I hate having to work a capitalist job to survive. I hate being forced into the office twice a week, wasting four hours every week just on public transport there and back.
It takes me an hour each way, while by car it would be under 20 minutes in good traffic. I could drive to the office, drive back home and drive back to the office again in the time I currently need to get there because I don't have a driver's license yet.
I hate being paid less than my coworkers despite me being nearly as skilled as them just because I have less calendar years of work experience and when I was asked in the job interview how much salary I wanted I asked for so little that it was below the minimum range for the position, so I got the minimum range as the salary and only sub-inflation raises since.
I don't have much hope in switching companies, because my current coworkers and boss are pretty accepting of my gender, neurodivergence and ethnicity, and I have a 30 hour workweek (at 75% salary) and 60% remote work.
If I were to switch, I would buy the metaphorical cat in the bag, because no racist/transphobic/anti-neurodivergent company would be honest enough to put that fact in the job description, and "return to office" has been a marketwide trend unfortunately. Add to that that Germany is taking part in the worldwide recession and that'll just make it even harder to find a job that'll actually hire me. My current employer is barely hiring anybody anymore despite several departments being very much understaffed.
Also our current chancellor wants to abolish part-time work, and I can just about handle the 30 hours. When I had 40 hour weeks with daily commuting in my job training I was always very tired and drained despite no real productivity demands and an autism-oriented environment. I don't think I could handle a 40 hour job.
I wish I didn't have to toil away for a capitalist to be allowed to access my needs. I could spend the time and energy developing #Kittyscript and other cool useful tech stuff instead. Or draw SFW and NSFW meltcats. -
@britt I'm an autistic black trans woman. I'm in the situation that I want to start a business, called #Lunatronex, but lack the discipline to pull through.
It's supposed to be a tech company developing technology to empower people, from a programming ecosystem (that's already started development, see the #Kittyscript hashtag), an operating system, computing hardware, all the way to neural interfaces and genetic engineering enabling freedom of form, for example becoming a real furry catgirl. My species dysphoric ass will be my own best customer for that, lol.
I already bought a domain, but I haven't set it up yet (so it still points at a "under construction" default page): http://lunatronex.net -
@britt I'm an autistic black trans woman. I'm in the situation that I want to start a business, called #Lunatronex, but lack the discipline to pull through.
It's supposed to be a tech company developing technology to empower people, from a programming ecosystem (that's already started development, see the #Kittyscript hashtag), an operating system, computing hardware, all the way to neural interfaces and genetic engineering enabling freedom of form, for example becoming a real furry catgirl. My species dysphoric ass will be my own best customer for that, lol.
I already bought a domain, but I haven't set it up yet (so it still points at a "under construction" default page): http://lunatronex.net -
@ariadne My employer is pro-AI (but not obnoxiously so) and pays for Github Copilot for their developers, allowing us to use it with our personal accounts too.
Pretty much the only feature I use is autocomplete, and I don't use it to figure out what code to write, only to save myself the physical effort of typing out the code I was going to write anyway, if the LLM happened to guess something close enough to what I had in mind. Rarely I let it do simple but repetitive refactorings that when done manually, would require lots of separate copy/paste steps, and again I already have a specific end result in mind and reject the LLM's result if it doesn't match (small discrepancies are fixed by hand).
I don't consider this to qualify as vibe coding.
I don't ask it questions, I prefer to read the actual documentation, because that's more reliable (assuming the documentation has been written by a sentient creature). Thankfully, Java and Kotlin have a great structured documentation system (Javadoc/KDoc) with IDE integration showing the docs when mouseovering a name, and allowing to navigate to the library and JDK sources with a single middle click.
I wouldn't have an issue with my employer cancelling the subscription when Copilot raises prices to a point where my employer doesn't want to pay for it anymore. I'm not depending on the LLM, I prefer keeping my skills sharp.
Also for my personal project, #Kittyscript (my own all-purpose programming language under sporadic development), I stopped using Copilot entirely, and back when I used it I didn't vibe code either. -
@ariadne My employer is pro-AI (but not obnoxiously so) and pays for Github Copilot for their developers, allowing us to use it with our personal accounts too.
Pretty much the only feature I use is autocomplete, and I don't use it to figure out what code to write, only to save myself the physical effort of typing out the code I was going to write anyway, if the LLM happened to guess something close enough to what I had in mind. Rarely I let it do simple but repetitive refactorings that when done manually, would require lots of separate copy/paste steps, and again I already have a specific end result in mind and reject the LLM's result if it doesn't match (small discrepancies are fixed by hand).
I don't consider this to qualify as vibe coding.
I don't ask it questions, I prefer to read the actual documentation, because that's more reliable (assuming the documentation has been written by a sentient creature). Thankfully, Java and Kotlin have a great structured documentation system (Javadoc/KDoc) with IDE integration showing the docs when mouseovering a name, and allowing to navigate to the library and JDK sources with a single middle click.
I wouldn't have an issue with my employer cancelling the subscription when Copilot raises prices to a point where my employer doesn't want to pay for it anymore. I'm not depending on the LLM, I prefer keeping my skills sharp.
Also for my personal project, #Kittyscript (my own all-purpose programming language under sporadic development), I stopped using Copilot entirely, and back when I used it I didn't vibe code either. -
Today, after around three months of zero #Kittyscript commits, I finally did some development on it again. I finished an implementation of tables (a.k.a. hashmaps, dictionaries, associative arrays) that I had started in February but hadn't committed yet as it was incomplete. I also built an adapter for Kittyscript iterables to be used as Java/Kotlin iterables (the reverse had already been implemented).
Have some samples from the Codeberg repo:
The table stuff: https://codeberg.org/LunaDragofelis/kittyscript-kotlin/src/branch/main/kittyscript-kotlin/kittyscript-kotlin-core/src/main/resources/net/lunatronex/kittyscript/core/tables
The iterable adapter stuff: https://codeberg.org/LunaDragofelis/kittyscript-kotlin/src/branch/main/kittyscript-kotlin/kittyscript-kotlin-core/src/main/kotlin/net/lunatronex/kittyscript/core/collections/JvmIterableAdapter.kt -
Today, after around three months of zero #Kittyscript commits, I finally did some development on it again. I finished an implementation of tables (a.k.a. hashmaps, dictionaries, associative arrays) that I had started in February but hadn't committed yet as it was incomplete. I also built an adapter for Kittyscript iterables to be used as Java/Kotlin iterables (the reverse had already been implemented).
Have some samples from the Codeberg repo:
The table stuff: https://codeberg.org/LunaDragofelis/kittyscript-kotlin/src/branch/main/kittyscript-kotlin/kittyscript-kotlin-core/src/main/resources/net/lunatronex/kittyscript/core/tables
The iterable adapter stuff: https://codeberg.org/LunaDragofelis/kittyscript-kotlin/src/branch/main/kittyscript-kotlin/kittyscript-kotlin-core/src/main/kotlin/net/lunatronex/kittyscript/core/collections/JvmIterableAdapter.kt -
@mira One of the reasons why #Kittyscript, the programming language I'm developing, has support for exact fractions, represented by bigint numerator and denominator. Many Lisps have something similar.
If you wanna peek at the source code: https://codeberg.org/LunaDragofelis/kittyscript-kotlin/src/branch/main/kittyscript-kotlin/kittyscript-kotlin-core/src/main/kotlin/net/lunatronex/kittyscript/core/numbers/BigRational.kt -
@mira One of the reasons why #Kittyscript, the programming language I'm developing, has support for exact fractions, represented by bigint numerator and denominator. Many Lisps have something similar.
If you wanna peek at the source code: https://codeberg.org/LunaDragofelis/kittyscript-kotlin/src/branch/main/kittyscript-kotlin/kittyscript-kotlin-core/src/main/kotlin/net/lunatronex/kittyscript/core/numbers/BigRational.kt -
@xan @karolherbst #Kittyscript (my own language) uses bigints, big rationals and automatic promotions for arithmetic including literals -
@xan @karolherbst #Kittyscript (my own language) uses bigints, big rationals and automatic promotions for arithmetic including literals -
About how #Kittyscript is a part of a bigger project to empower users.
RE: https://void.lgbt/objects/85578a79-2689-45a9-907c-a8b90ec6507a -
About how #Kittyscript is a part of a bigger project to empower users.
RE: https://void.lgbt/objects/85578a79-2689-45a9-907c-a8b90ec6507a -
@freya @briellebouquet yes, and not even just about filesystems. They dumb the systems down while also skipping writing a manual, making it a pain for everyone above or below the average tech literacy.
It's something that greatly pisses me off, and it seems that Big Tech want to bring that bullshit to desktops and laptops too, see Chromebooks and Windows 11.
It's something I want to fix with #Kittyscript and the operating system I want to develop on top of it (tentative name: KittyOS). It will be designed to be programmable by every user. It will ship with an IDE with a built-in beginner tutorial. Applications will be scriptable, and scripts and plugins can be shared by users.
The only thing holding me back is my ADHD executive dysfunction :neocat_cry_loud: -
@freya @briellebouquet yes, and not even just about filesystems. They dumb the systems down while also skipping writing a manual, making it a pain for everyone above or below the average tech literacy.
It's something that greatly pisses me off, and it seems that Big Tech want to bring that bullshit to desktops and laptops too, see Chromebooks and Windows 11.
It's something I want to fix with #Kittyscript and the operating system I want to develop on top of it (tentative name: KittyOS). It will be designed to be programmable by every user. It will ship with an IDE with a built-in beginner tutorial. Applications will be scriptable, and scripts and plugins can be shared by users.
The only thing holding me back is my ADHD executive dysfunction :neocat_cry_loud: -
Self quoting: https://void.lgbt/notice/B6LhVIYaXQlZ02gd1M
I'm disappointed at JetBrains for putting slop in an otherwise pretty good programming language, Kotlin. Which is the language I'm going to implement the initial #Kittyscript interpreter in.
The good news is that the OpenJDK seems to have banned slop. So Java and the JVM (that Kotlin runs on top on) are safe, and if Kotlin's code quality tanks too much from the slop, I at least have the option of switching to regular Java.
RE: https://void.lgbt/objects/eb84504f-4b7b-470c-81d3-3adebb391915 -
Self quoting: https://void.lgbt/notice/B6LhVIYaXQlZ02gd1M
I'm disappointed at JetBrains for putting slop in an otherwise pretty good programming language, Kotlin. Which is the language I'm going to implement the initial #Kittyscript interpreter in.
The good news is that the OpenJDK seems to have banned slop. So Java and the JVM (that Kotlin runs on top on) are safe, and if Kotlin's code quality tanks too much from the slop, I at least have the option of switching to regular Java.
RE: https://void.lgbt/objects/eb84504f-4b7b-470c-81d3-3adebb391915 -
@butchrobot I'm struggling with consistently working on it, but my project is #Kittyscript, a universal programming language that combines static and dynamic features. You will be able to run run-time code at compile time to generate code that compiles code at run-time. -
@butchrobot I'm struggling with consistently working on it, but my project is #Kittyscript, a universal programming language that combines static and dynamic features. You will be able to run run-time code at compile time to generate code that compiles code at run-time. -
@hsza awch, Kotlin is/was such a nice language and now they're slopping it up. It's a disappointment.
I'm probably not going to rewrite the work-in-progress #Kittyscript interpreter in something else, as it's supposed to only be a initial bootstrap implementation, and I plan to write a Kittyscript compiler in Kittyscript itself later. -
@hsza awch, Kotlin is/was such a nice language and now they're slopping it up. It's a disappointment.
I'm probably not going to rewrite the work-in-progress #Kittyscript interpreter in something else, as it's supposed to only be a initial bootstrap implementation, and I plan to write a Kittyscript compiler in Kittyscript itself later. -
@atomicpoet @OddDev What I think we really need, in all form factors from smartphone to desktop, is hardware with software designed to empower the user. Something that allows the user to change every configuration, install any software they want and write their own software (whether it's a script, a plugin, an app or even a kernel module) without needing a second, more capable device to do so (like how Android requires ADB for a lot of advanced things).
This is something I want to make in the future, with the company #Lunatronex I want to start and the #Kittyscript programming language I've already started developing. -
@atomicpoet @OddDev What I think we really need, in all form factors from smartphone to desktop, is hardware with software designed to empower the user. Something that allows the user to change every configuration, install any software they want and write their own software (whether it's a script, a plugin, an app or even a kernel module) without needing a second, more capable device to do so (like how Android requires ADB for a lot of advanced things).
This is something I want to make in the future, with the company #Lunatronex I want to start and the #Kittyscript programming language I've already started developing.