« first day (1024 days earlier)      last day (751 days later) » 

00:04
@user merge the scala native pr when you're ready
00:17
vyxapedia has been totally rewritten; it now has all of the elements populated from elements.yml - please let me know if you see any bugs or errors in it
6
!!/run ⟨⟨1|2|3⟩|⟨4|5|6⟩|⟨7|8|9⟩⟩ λ∑;
@hyper-neutrino ⟨ 12 | 15 | 18 ⟩
is this how it's supposed to behave? I thought λ∑; would push a function object
or do they get automatically executed if they are TOS at the end
!!/run ⟨⟨1|2|3⟩|⟨4|5|6⟩|⟨7|8|9⟩⟩ λ∑; 1 W
@hyper-neutrino ⟨ ⟨ ⟨ 1 | 2 | 3 ⟩ | ⟨ 4 | 5 | 6 ⟩ | ⟨ 7 | 8 | 9 ⟩ ⟩ |
is the hanging | at the end cuz the function can be stringified or why is that
Functions do weird stuff
IIRC they're executed when printed?
@hyper-neutrino Love the new theme!
00:23
@emanresuA that would explain why , and then pushing more stuff later prints the sum instead of a function object
also glad you like it!
What happened to element search?
I removed it because the only point in the old search was that you could filter by various things
but the vyxal element list is not in a nice format for that and doesn't have keywords, and I am too lazy to write them in
if elements.yml gets proper arity formatting (rn half of them are inconsistently expressed strings) and keywords I might be able to add them back
it's easier for Jelly cuz the language hasn't changed in many years :P
@hyper-neutrino this
@hyper-neutrino smells like it's an invisible error
Basically, don't wrap functions in lists at end of execution
Because printing functions executes them
@hyper-neutrino v3 will be nicer for things like this
00:57
@hyper-neutrino Nice! Could you make it so in the menu, the current page is bolded instead of home?
ysthakur merged PR #1588 (Vyxal/Vyxal) (Vyxal:v3-native → Vyxal:version-3): Scala Native support
ysthakur deleted branch Vyxal/v3-native
Could it automatically use a light theme if that's someone's system setting?
I kinda miss the old one, it looked so soothing
The red makes me feel like I'm in danger
I am not in danger, user, I am the danger. A guy opens vyxapedia and you think that of me? No, I am the one who code golfs.
@hyper-neutrino that's because not everything takes a single arity number of things
some things can take 1/2 things based on types, or can take a variable number of things, or operate on the whole stack or not take anything or take a certain number + a variable amount
01:27
@hyper-neutrino what do you think about the keywords in ^?
Obviously it's not finished, but just as a general first impression for searchability
Is the format suitable?
There seems to be some repetition with the comment keywords
"comment out until newline" is repeated twice for #
Also, if you're using fuzzy searching, "comment until newline" probably isn't needed since comment out until newline already includes that
And the multiline comment keywords seem to have a lot of the single line keywords, although that may be intentional
@user copilot
@user also copilot
lol
02:26
125 elements now have keywords
That's almost half way
This might be done in time for 2.19.1 tonight
Ah nope forgot there's all the digraphs that need doing
There's at least 298 of them
@lyxal right, but so long as the format is somewhat standardized it can be searchable
unless it is and I am just dumb
@lyxal oh this looks pretty good - I would separate them though so like ["not", "logical negate"] could be ["not", "logical", "negate"]
@hyper-neutrino it is
oh also another thing I forgot, tags (so like, logical not gets the "logical" and "non-vectorizing" tags)
for reference this is a sample of what the old vyxapedia format was like
how many elements are there?
At least 554
559. hmm... that's quite a few, I was thinking maybe I could just go through them all myself to make sure they're standardized in a format that works for me but that's a bit too many
alright I'll write up a spec for what I want the format to be and we can discuss and modify it and then maybe make that a project for the future (I assume we're prioritizing v3 element impl)
02:38
@hyper-neutrino We are
v3 has keywords baked into the implementation because literate mode plans
@user oh yeah literate mode
That needs a bit of infrastructure planning
Probably should get that working first
oh okay
cool
actually this doesn't need a spec. the ID is not needed cuz that was used for routing in the path but rn the routes are just the element symbols themselves
I kind of want to request separation between elements and structures because I still think they're different enough to warrant being termed differently
otherwise name, arity, keywords for searching, tags for filtering and info, a tagline for the table/list, and a full description would be nice
@lyxal New lexer for that, right? :|
@user no
Same lexer just extended to recognise words
Transliterate the words to symbols and lex
@hyper-neutrino Perhaps a boolean field structure that's false by default?
@hyper-neutrino what tags should there be?
Because vectorisation is already an attribute rather than a tag
@hyper-neutrino the only things not already there are the tags and keywords
@hyper-neutrino no spaces in keywords?
02:45
By the way, nice library for searching: Fuse.js
@lyxal Maybe it's so someone can select "logical" and get all the logical operators?
Actually, no, that'd work even if you had a "logical negate" keyword with spaces
@user I mean so I know how to write the keywords
It's more of a yes or no question rather than a why question :p
Well I wanna make it a why question :P
03:11
boolean
number
string
literal
constant
syntax
list
stack
split
remove
some of the tags I have thusfar
@hyper-neutrino what do you think about the tags?
Are they what you're thinking of tag wise?
03:57
just realised the number/string/list tags are useless
because almost everything works on numbers/strings/lists
because type overloads
04:20
Tags:

- base
- bitwise
- boolean
- constant
- digraph
- function
- io
- lambda
- list
- literal
- number
- prime
- register
- stack
- string
- vectorise
Lyxal deleted branch Vyxal/add-keywords-to-v2
I've decided to start again doing things a little differently
mostly because I want to automate it all
"but lyxal, how are you going to automate it all? copilot doesn't have an API!"
raw codex does
+ it's free
@user I would be okay with that
better idea
structure instead of element
@lyxal not sure, but the jelly site has arguments, arithmetic, array, base, bitwise, boolean, combinator, combinatorics, complex, constant, hyper, literal, math, matrix, misc, nth-link, number, optimization, prime, random, register, separator, stdio, string, and vectorize
@lyxal that is what I was originally thinking
although it would be more convenient to have symbol be the field and type: "structure" | "element" | "modifier"
04:27
Isn't almost everything string, number and list?
the tags refer to what type of stuff they do
@lyxal this looks like a pretty good set of tags
some could be added to it from the jelly list but having too many isn't good either
time to figure out a) how to handle all this yaml with python and b) what prompt to use for keyword and tag gen
@lyxal oh do we have a short and long description separately?
ye
description for short, overloads for long
oh
description IMO is still too long for the table and too short for a full expanded description though lol
also for keywords, it's okay to have spaces but then if someone puts two spaces in their search it won't match the keyword anymore
04:32
@hyper-neutrino guess I'll add that to the list of things to automate with codex :p
04:53
@hyper-neutrino on second thought, I have added a few more
purely because there wasn't that many codex could decide
tags like number, string, list can be added based on overloads
wow it actually works
I'm actually good at prompt engineering
# From the following YAML, create a list of tags that might apply to the function from its name, description and overload tags.
# The possible tags to choose from are:

# arithmetic - for functions that look like they perform mathematical functions
# base-conversion - for functions that look like they perform base conversion
# bitwise - for functions that look like they perform bitwise operations
# boolean - for functions that look like they return boolean results
# combinatorics - for functions that look like they involve combinatorics
and you give it the name field, description field and overloads
on experimentation, it's a little jank with some things
05:22
well
let's just say the ai isn't as good at this as I thought
that, or the categories aren't general enough
@lyxal gonna stick with this list
06:06
Okay so here's the story
The whole auto generation thing didn't work out so keywording and tagging is being done manually
There's a text file with all the tags that can be used
Number, string, list and function are related to type overloads
The rest are hopefully self explanatory
The keywords field goes under the description field
And the tags field under that
Keywords is a list of strings. One word per string unless unavoidable
Keywords are what people might use in a sentence to find a particular overload
Protip use copilot for keywords and edit if need be
Tags is also a list of strings
Each string is a tag from the tags file
Copilot can do the tags but you need to manually check the list it generates
Secondly, there's some renaming happening too
If something starts a structure, it's structure, not element
If something is syntax, it's syntax not element
Keywords of structures is an empty list
As are the tags
You can have keywords for syntax though
But the tags are empty list for syntax
I've done up to C
So if you need inspiration on how to format things, elements lambda through C serve as examples
If you've got any questions don't hesitate to ask
And no, this doesn't break the txt file, test and md file generators
The keyboard description generator will have to be changed a little, but not too much
Also, the vectorisation field of elements serves as the vectorise tag, so no need to include it in the tags list
06:59
oh nice
looks good
syntax refers to stuff like arrays and strings I presume?
Yes
But also decimal points, branches and that sort of thing
ah, okay
also, the tests being in the elements.yml is very convenient cuz it gives me free examples :P
Lol
Finally a big brain reason for having them there :p
Alas that won't be possible in v3
Because there's different test types lol
07:22
:(
Actually, we could have a tests.yaml and a test suite that reads tests from that yaml file at runtime
And then the more complex tests would continue being defined the same way as they are now
I'll make a branch for that tomorrow
@user yeah you don't need a new lexer at all. Just split on words, things wrapped in curly brackets turned into lambdas, things in square brackets turned into a list and then look up each word in a word to symbol hash map (auto gen'd from the implementations object before hand) and sbcs lex
 
5 hours later…
12:38
All the monographs have been keyworded and tagged
now for the 300 digraphs
k digraphs done
now for the math, string, list and misc digraphs
digraph-math
digraph-string
digraph-list
digraph-misc
those are the 4 tag types for digraphs
why
why the hell
are there 2
views from core.tcl-lang.org
when there is a 99% chance
that there is no link to vyxal there at all
which one of you idiots visited the tcl lang site with cookies on and then directly visited vyxal?
13:48
CMC: Sort a list of complex numbers by the real part
in particular it has to work for ⟨ 1.5 | 1°1 ⟩
I feel like working with complex numbers is unnecessarily hard because of the overloads of complex number built-ins
 
2 hours later…
 
5 hours later…
21:18
@AndrovT There's a sort by element/structure, right?
21:31
@lyxal I'm making a tests.yaml so that hyper can get examples, but should it be a tests.json instead?
Or some other format?
@user The problem is that ⌊ is real part for complex numbers but floor for reals so µ⌊; doesn't work
Oh, that sucks
!!/run ⟨ 1.5 | 1°1 ⟩ µ⌊;
@AndrovT ⟨ 3/2 | 1 + I ⟩
!!/run ⟨ 1.5 | 1°1 ⟩ µ⌊;
21:39
@AndrovT ⟨ 3/2 | 1 + I ⟩
@lyxal Looks like there needs to be a different way to get the real/imaginary components of complex numbers
21:50
@user yaml should be fine I think
It can always be converted to json easily with code
22:15
👍
Y'all the Programming Language Design proposal is 3 upvotes away from leaving the first phase. Come distribute your votes to the last 3 9-scores
!!/hyperping
@AaroneousMiller @Allxy @Ausername @BgilMidol @DialFrost @Ginger @Milk @Niko @NumberBasher @PyGamer0 @Seggan @Steffan @Wansen @astonearachnid @emanresuA @hyper-neutrino @mathcat @pxeger @rues @tybocopperkettle @user ^
(cc @lesobrod @97.100.97.109 @AndrovT)
22:58
Now it's gotten to the commit phase, so come commit
If you want, you can use this link that includes me as the referrer so I can get...fake internet points?
Imagine being able to create an account
So apparently I do have an account, but it's unlinked

« first day (1024 days earlier)      last day (751 days later) »