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

12:57 AM
No iirc
 
I'll add it
 
 
4 hours later…
4:50 AM
@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`
 
4:52 AM
⟨₁ƛ₍₃₅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
 
5:08 AM
lol
 
kekw
 
 
2 hours later…
7:21 AM
@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
 
7:31 AM
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?
 
7:35 AM
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]
 
7:37 AM
['`', '@', '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
 
7:39 AM
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?
 
7:41 AM
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
 
7:44 AM
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(...))
 
7:48 AM
>>> 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
 
7:50 AM
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
 
7:51 AM
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)?
 
7:54 AM
@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
 
aight
 
@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
 
7:56 AM
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
 
8:02 AM
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
 
8:08 AM
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
 
8:10 AM
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)
 
8:19 AM
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?
 
8:23 AM
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
 
8:55 AM
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?
 
9:25 AM
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.
 
9:45 AM
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.
 
10:03 AM
 
10:59 AM
 
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 AM
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 AM
now to make strings great again
using queues
 
is vectorisation great again?
 
probably
who knows?
 
not me
 
same here
 
generators though...
 
12:01 PM
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 PM
@AaronMiller hello there!
everything is only half on fire this time
 
yay!
 
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 PM
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 PM
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
 
1:39 PM
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
 
2:24 PM
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
 
2:38 PM
@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
 
2:48 PM
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
 
3:11 PM
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
 
3:21 PM
@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
 
3:35 PM
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
 
3:42 PM
: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
 
3:43 PM
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
 
3:47 PM
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
 
3:49 PM
: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 (1024 days later) »