« first day (451 days earlier)      last day (1322 days later) » 

00:57
No iirc
I'll add it
 
4 hours later…
04:50
@hyper-neutrino Elements, structures and modifiers
that's for v2
replace modifiers with transformers for vE
where does syntax fit into that
like literals for strings, numbers, lists, etc.
strings/numbers/lists are considered structures
also how do lists work exactly? do they have to be literals, or does it just run several elements with an empty stack and concatenate the results
@lyxal ah okay
@hyper-neutrino the latter
heh, you can have defined functions inside lists
you can have anything really
@VyxalBot run `xd`
04:52
⟨₁ƛ₍₃₅kF½*∑∴;|@hey_wait_a_minute:1|69*; 12 @hey_wait_a_minute;⟩
fizzbuzz and a defined function inside a list
cursed as anything
but eh
wtf lol
that's cool
it's actually easier to parse too
because I don't have to check each value
yeah
is there any way to inline a literal list without needing the surrounding brackets?
also does the list structure produce a list or a gen
list
@hyper-neutrino W or value value" value J value J value J
oh right i'm dumb
stack based language doesn't need nilads/consts to be one element lmao
kekw
 
2 hours later…
07:21
@lyxal Bug: in sccs errors
@Ausername odd. I'll look into it
But I suggest you raise an issue on the repo
And tag it appropriately
@Ausername This seems like a 2.5.x+ issue, so tag it as so
hmmm
for character in source:
    if type(character) is list:
        if flux_string[0]:
            flux_string[1] += character
        else:
            components.append(character)
flux_string[1] is a string
@hyper-neutrino Yes
Because flux_string is a list
is this meant to be flux_string[1] += "".join(character)?
No
07:31
also why would character even be a list
Because strings are grouped as lists
Mixed types D:
@hyper-neutrino if anything, it should be += character[0]
`@Hy∧‛NeꜝṘ⋏⇩ ÷… λǐ!`
'`'
'@'
'H'
'y'
'∧'
['Ne', '`']
tf?
do you have a two-char literal syntax that you're not parsing properly
Depends
Which function is that returned from?
07:35
i just inserted a print into group_strings
Where?
at line 157 print(character) (github.com/Vyxal/Vyxal/blob/…)
Oh then it's perfectly fine
It's behaving as expected
oh, okay
@hyper-neutrino it's supposed to parse like that
2 mins ago, by lyxal
@hyper-neutrino if anything, it should be += character[0]
07:37
['`', '@', 'H', 'y', '∧', ['Ne', '`'], 'ꜝ', 'Ṙ', '⋏', '⇩', ' ', '÷', '…', ' ', 'λ', 'ǐ', '!', '`']
this is what the full source is
Where's that from?
inserted print(source) at line 156
(which function)
@hyper-neutrino once again, as expected
36 messages moved from The Nineteenth Byte
hm, okay
so what's the expected result then?
Golly, stop making me think everything is on fire
07:39
lol
2 mins ago, by lyxal
2 mins ago, by lyxal
@hyper-neutrino if anything, it should be += character[0]
I think A username wants it to print @HyperNeutrino Welcome Back!
but if you do ^ that won't work
2 mins ago, by lyxal
2 mins ago, by lyxal
@hyper-neutrino if anything, it should be += character[0]
That's how you fix it
That's what's causing the bug
mfw localhost link
Is that with the fix I suggested?
07:41
yes
Hmm.
I don't have my computer at the moment, so I'm going blind here btw
(mobile debugging ftw)
source = group_two_byte_strings(source)
source = group_strings(source)
source = group_digraphs(source, variables_are_digraphs)
this order feels wrong
It really isn't
i think you need to run group in parallel
two byte strings should block ` from starting a string
but ` should block two byte strings
@hyper-neutrino it does
07:44
wait, no, two-byte-strings has a switch to catch strings
@hyper-neutrino Try it Online!
so why doesn't it work then
@hyper-neutrino wait no it doesn't
Tell me what the return value of group_strings on `This shouldn‛tn‛t work` is
just group_strings?
Ah, sorry
group_strings on the result of two bytes
gs(gtbs(...))
07:48
>>> from vyxal.parser import group_strings as g
>>> from vyxal.parser import group_two_byte_strings as b
>>> b("`This shouldn‛tn‛t work`")
['`', 'T', 'h', 'i', 's', ' ', 's', 'h', 'o', 'u', 'l', 'd', 'n', ['tn', '`'], ['t ', '`'], 'w', 'o', 'r', 'k', '`']
>>> g(_)
[['This shouldntnt work', '`']]
this is with your proposed fix
without it, this would error
Well frick
        temp = components.append([temp + character, "`"]) or ""
        in_string = False
ngl i don't get what this is supposed to be trying to do
@hyper-neutrino I can kind of see a solution to this, but I need to stare at the results for a bit longer
I think I have an idea
okay i guess the important part is
is supposed to indicate that the next two characters form a literal
Yes
07:50
and is `...` supposed to be a literal
and is ‛`h supposed to be a two-byte literal and not start a string
Yes
@hyper-neutrino yes
and is `...‛...` supposed to insert the ‛` directly into the string
wtf that breaks markdown
Depends on the flags used, but yes
wait which flag changes this
D turns off dictionary compression
07:51
oh you mean that
Yes
well i still consider that inserting the character, it just gets decompressed after
Oh okay
Su
> escaped = components.append(character) or True
why must you hurt me in this way
a) just do two lines
b) escaped = not components.append(character)
I don't want to interrupt, but I have a Vyxal question again: Where's the code that translates the Vyxal command (eg. +) to its helper function (eg. add)?
07:54
@math you're not interrupting
half
i can just add a check in GTBS such that when it sees a backtick, it disables the two-byte group until it sees another backtick
@hyper-neutrino I'm currently writing a half-fix into a gist
@math remember that non-structures are have the NONE structure type
So if you go to vy_compile, you'll see that the command dictionary is accessed under the if statement that checks if token_name == Structure.NONE
07:56
oh right
That would require a few changes in vy_compile, but I think that would work
why else would type(character) be list
> there's probably a need for an elif for the other string delimiter types because I think there was something funny with strings being parsed inside other structures or something
Honestly, I don't know
thoughts on a github bot here?
Perhaps it's time for a third rewrite of the string grouping system
@hyper-neutrino yes
08:02
what's wrong with making GTBS ignore the delimiter if currently in a `-string?
Probably nothing
But I mean, it's kinda clear that there's some confusion around the way strings are handled internally
there are two easy ways to fix this
the first is to just look for GTBS-style things inside strings and unpack them appropriately
the second is to make `-strings stop GTBS
the issue with the former is that if the two-byte-string delimiter is too close to the end, it cuts off the closing backtick and causes the string to not terminate (being the one your gist has)
do you want to maintain that strings can be parsed within strings?
like, do you want two-byte-strings to be parsed within normal strings or is that unintended behavior
It's neither really
It's just an intermittent step in the string parsing process
And this means that the same bug will be present in the experimental branch
Because I totally didn't rip half the code for the parser straight from the experimental branch
08:08
hmm. okay
I think I'll have to redo the string parsing system
what do you expect `abc'x` to do? (where ' is the 2b delimiter cuz i'm lazy)
Just insert the '
It being parsed inside the string is relatively arbitrary
08:10
so as long as the end result works that 'a` does not start a string and `abc'` will close a string, it's fine?
Yes
aight. i think this should be reasonable tofix
I kinda want to rewrite it though
I've hit a lack of momentum with the experimental branch
And I'm not quite sure what's happening with the code clean up
So a challenge where I somewhat know what's happen is greatly appreciated
Plus, I can document it properly as I write it
fair enough. i will leave this to you then
CMQ:. What should something like '\'m be parsed as (let ' be the two byte string delimiter)
08:19
i think it should insert the two-byte delimiter and m into a string
\' (literally backslash and delimiter) or 'm (delimiter and m)?
IMO if scanning a two byte literal, \ should escape the next character iff it is \ or '
and likewise, when scanning a normal literal, \ should escape only \ or `
So '\\? > \?
And '\n > newline
@hyper-neutrino ^ and ^^
no, IMO the second is unnecessary because you can just put a newline itself
use regex to parse these /s
But say it was '\t or '\r?
08:23
oh wait
There are no single byte elements for those
hm, then i guess those should be escaped too
And then what about '\t?
Literally \t or tab followed by question mark?
i think tab makes more sense then
08:55
in Sandbox, 13 secs ago, by Vyxal Bot
The repository was starred by hyper-neutrino
\o/ it begins
@HyNerateElevation You should totally change your name to that
@hyper-neutrino Could be nice.
Also, Vylight....
Can I safely fix this or will there be massive merge conflicts?
09:25
Vy light is pretty much separate
You should be fine
We're mostly cleaning the python code
ok
Turns out I just forgot to check if it's in SCC mode.
09:45
How is the structure separator | parsed?
I don't really understand the current version but I'll try to explain how I did it:
There are three different usecases:
- statements where it's just a simple branch, like while loops and if statements
- statements where it modifies what came before, such as for loops and lambda arities
- lists.
With the first, you can just parse it as its own token, and let the compiler handle it.
The second is a bit more complicated. If you encounter a |, you basically pop tokens while accumulating what's in between until you encounter the original, push what's in between as a token, then push the branch as its own token.
The third can mostly be parsed as its own token, although it requires a little lateral thinking.
That does sound like a combination of issues with the new parser and the clean up
I'll fix it shortly
I kinda want to just put the 2.4 snapshot online and leave it be...
11:44
That would have to be on a separate pythonanywhere server
Because my current site has already used 350mb of my 500mb storage allowance
And that's just one version
That's fine
Wait 350mb
How
Idk
(Anyway I can make one and push buttons)
Wonderful
@Ausername i have fixed the bug
poggers
11:56
now to make strings great again
using queues
is vectorisation great again?
probably
who knows?
not me
same here
generators though...
12:01
we don't talk about those
Vyxal 2.6:
- Fixed generators
- Removed Herobrine
3
Vyxal 69.420:

- Added ability to make programs use telekensis
- Fixed generators
@Ausername we know
that's issue #148 on github
12:22
@AaronMiller hello there!
everything is only half on fire this time
and now it's not on fire
because I used a fire extinguisher on the code
hello @user
hooray for code fire extinguishers!
Hi
and by fire extinguisher, I mean this song
(not a rickroll I promise - Rick isn't exactly that helpful for vyxal work)
12:38
This failed, methinks group_strings or whatever didn't get refactored/renamed prpoerly
@user heh, imagine not checking the most recent commit
lol
this isn't the first time I've been unhappy with pylint: github.com/Vyxal/Vyxal/commit/…
12:57
CMQ: What kind of decorators would be a good idea to add to make writing Vyxal easier?
I feel there should be a stackify decorator to turn a Python function into a command that pops from the stack and pushes back onto it
Turning Generator into a decorator would be great, but time consuming
because you'd have to go through each instance and refactor it
which is why in the experimental branch, I'm using LazyList as a decorator right from the start
Interesting, how does that work?
Actually nvm I'll go check it out myself
@user v
def __call__(self, *args, **kwargs):
    return self
example usage:
def map_every_n(function, lhs, index):
    @LazyList
    def f():
        for pos, element in enumerate(lhs):
            if (pos + 1) % index:
                yield element
            else:
                yield function([element])[-1]

    return f()
Nice
because apparently you can use classes as decorators
13:39
you can also decorate classes
decorators can be any callable (cuz it is just syntactical sugar for calling something, anyway)
i try decrat fns wit generator but nat wrk :(((((((
eet wurk nau
much hapi yay
14:24
Fun fact: When using the r flag, the $ command is rendered completely useless. I think this should change. Essentially, when using the r flag, $ should either take its arguments in the normal order, or it should return its arguments unchanged and unswapped, which would mean they are swapped since they are taken in reverse order.
lol
You can probably commit to master directly, that's a pretty reasonable change
Btw does anyone know what first_n does?
probably gets the first N integers satisfying some condition for that one element
14:38
@user I'm just not sure which would be better between the two ways of doing it: The flag doesn't affect that command, or that command acts differently depending on the flag
The flag shouldn't affect that command, I guess. Making it act differently would mean extra swapping and unswapping and swapping
it only takes me five keystrokes to get to the vyxal repo lol
g (rightarrow) v (rightarrow) v
(well technically then i need to hit enter)
@VyxalBot should be pretty operational now for reporting activity on github
It used to take me just one: g, but when I was setting up the interpreter for brainbox, I referenced the grok one a lot, so now g tries to go to there, so it takes two: gi
@hyper-neutrino Noice
14:48
bot will report forks, issues opened/closed/reopened/edited, PRs opened/reopened/closed/merged, commits pushed, and branches created/deleted
if there's anything else y'all want just lmk
15:11
aight i'm disabling the bot here for now so i can test other stuff
Hi @VyxalBot! How do you do?
not very well; the bot is failing to send requests to the backend for whatever reason
also i have a somewhat cursed setup; i have two flask servers, one of them is internal and sends messages when it receives a POST; the other is external and receives webhook activity via a POST and then POSTs to the internal server
and to prevent having to log in / out too much (which hits captcha), when the bot receives a message, it just POSTs it to my ext server which POSTs the reply back xD
I would say you should add a rickrolling command that's only accessible to ROs, but pretty much everyone here is an RO, so... :/
*makes it mod exclusive*
Can't you use the internal server directly?
@AaronMiller lol this room probably has the highest RO:participant ratio
15:21
@user idk this should work fine and idk what best practice is lol
i mean probably to pack everything into one file but then if i change it i need to restart the bot and that hits captcha
15:35
CMQ - what commands should the bot have and what syntax?
I want to add a hyperping command but I am worried about abuse
@VyxalBot lol u good? - Check status of bot
or just non-malicious misuse
@VyxalBot epic gamers - Hyperping all users currently in room
@VyxalBot plz give me teh otput - Runs Vyxal code (inputs and flags optional)
Should it be given RO powers?
@VyxalBot is <code> funny? - Execute <code> as Vyxal code and only return the output if it is 69 or 420 /s
15:42
:bruh:
@user doesn't seem necessary
@hyper-neutrino It's not necessary for half the ROs to have RO powers, so you know somebody is gonna give it RO powers
¯\_(ツ)_/¯ true
aww, it needs 100 rep first. dang it
i think lyxal just like RO'd anyone who sent more than 2 messages here lmao
15:43
not if I commit mod abuse
3
@lyxal btw i hate you for making strings delimited by backticks /s
@lyxal btw i love you for making strings delimited by backticks /s
@hyper-neutrino hehe, fenced code blocks ftw
@user Btw this is a completely serious request, since it is in the spirit of Vyxal
tbh i just hate markdown lmao
15:47
Every day, more people die
Someone must be sacrificed to stop this
fixed
i don't actually need to be an ro kekw
Thank you for volunteering
15:49
:58598309 If you're gonna add a rickroll, you can't say that you're gonna add a rickroll or everyone will know. You have to put it in in such a way that no one will notice until they get rickrolled, like when A username added a rickroll to Vyxal.
Please don't insult me by using that link :P
1 message moved to ­Trash
wdym?
its a perfectly valid example
It's the most commonly used link used to rickroll people
I've memorized it by now
Oh wait you changed it lol

« first day (451 days earlier)      last day (1322 days later) »