« first day (1035 days earlier)      last day (740 days later) » 
00:00 - 21:0021:00 - 00:00

00:07
Can we have the cookie emoji photoshopped on or smth?
That cookie has no chocolate chips
00:23
@user why can't I have a Seq[VAny] in a match statement?
the type test for Seq[vyxal.VAny] cannot be checked at runtime
relevant code:
val top = popFunction(Some(n)) match
                  case x: Seq[VAny] => x
                  case _            => throw new Exception("Impossible case")
also, how I do make scalafix ignore a section?
it's complaining about
val top = popFunction(None) match
                  case x: VAny => x
                  case _       => throw new Exception("Impossible case")
saying I don't need to check for VAny
but it's too stupid to realise I actually do
00:38
@lyxal Because generics stuff is erased at runtime (not only on the JVM but also with Scala.js and Scala Native)
So at runtime, all you can match on is Seq[?], you won't know what the element type was
@lyxal There are a few different ways to do it: scalacenter.github.io/scalafix/docs/users/suppression.html
@lyxal What does popFunction return?
@user VAny | Seq[VAny]
Oh
Scalafix is indeed stupid then
Can you link to the relevant line in the repo? I want to see if there's an easy way to shut up both the compiler and Scalafix
Thanks
(btw, given that popFunction is so big, it might be better to make it a proper method)
Could you make popFunction return Seq[VAny] no matter what?
that adds all sort of nasty list checking later on where you'd otherwise use ctx.pop() with no parameters
@user if it didn't modify vars, you could
00:51
Methods can modify vars
but local ones
@lyxal How about an Either then?
Or two popFunctions, one for Some, one for None
@lyxal They can do that too
so if I write var argIndex: Int = 0 and then call a method that's defined elsewhere, it can change argIndex?
ye
that sounds cursed
00:53
How's that? Python can do it too
you have to use global first
I just want var because it changes
not because it's global
@lyxal nonlocal
@user then that's also cursed
How? Vyxal v2 uses nested functions everywhere and I'm pretty sure a bunch of them modify local variables
@user I don't think there's any nonlocal stuff. And if there is, it's one or two functions
yep, only 2 instances of nonlocal
everything else respects its scope
@user it actually infers IndexedSeq[Nothing]
that's from hovering over it
@user I was thinking that, but thought it might be too many variables
I think I'll just do that
The PR just needs tests now
lambda x: $x 5 add end :=f
[1|2|3|4|5] $f map
returns [6|7|8|9|10] like you would expect
01:26
@user I've added tests for everything, so now it's just final reviews and then merge when approved and ready
[[1|2]|[3|4]] lambda :=[x|y] $x $y add end map
I just love being able to do things like that
and get [3|7] as expected
@lyxal scratch that, I have something else I want to add
01:59
kS
@lyxal on second thought, I'll add this after the pr
Basically it's making lambda params in literate mode not be treated as words
Which I think can be a PR of its own
Because it might need a bit of restructuring of the literate lexer
02:22
@Jacob amongus
sus
!!/run kS
Sorry user, I'm afraid I can't do that.
Ah, forgot. Please learn how to run Vyxal at some point
will do tomorrow
...it just crashed
sometimes I really hate this bot
02:27
Nice, that's pretty quick
@lyxal Huh, interesting
@user it crashing or me hating it? :p
will do tomorrow
Something happened to my connection, I had to retry twice before that message sent, and I didn't see your next messages
utc midnight go brrr
02:58
ysthakur requested changes on #1611 (Make Lambdas Great (for the first time actually))
03:17
@user I gotta go for now, but I've addressed most of your comments
 
3 hours later…
06:00
.find(_ != _)
does that go pairwise?
or is it two items of a zipped iterable?
06:21
@user on your sort-by suggestions, what's the difference between the two?
@lyxal It's two items of a tuple
Scala 3 lets you automatically use an n-parameter function instead of a function taking an n-tuple
@lyxal The previous version uses (ctx.settings.defaultValue, ctx.settings.defaultValue), which is kinda unnecessary
Someone reading the code might think that using the default value is necessary, even though it isn't, you could use (0, 0) or ("foo", "foo")
I figured it'd be better to use map(...compareExact(...) < 0) and if they were equal for branches, explicitly use .getOrElse(false) for that case
06:53
Makes sense
You say you weren't 100% for it though
Why not?
idk which one feels more clear to you
What I want to use is Option#fold :P
But idk what someone new to Scala would want (okay, you're not that new to Scala anymore, but still closer than me)
@user committed the getorelse false option
pog
@user the hell does option fold do anyway?
option.fold(foo)(bar => baz) is just sugar for option.map(bar => baz).getOrElse(foo)
06:56
An option isn't a list though?
It's a list of at most one element :P
!!/register
@PyGamer0 You have been registered! You don't have any permissions yet; ping an admin if you think you should.
I think Option actually extends Iterable or something
So getorelse returns the item unwrapped?
06:57
You can do option.toList
@lyxal ye
!!/hug
Sorry PyGamer0, I'm afraid I can't do that.
You can think of it as list.head
@VyxalBot very sad
@user ah that makes a bit more sense
06:57
@VyxalBot !!/love
Use option fold and I'll think of a way about how to explain it in a scala cheatsheet document
Because I'm still only a Scala novice :p
Nah on second thought map(...).getOrElse is probably more appropriate here
@lyxal Which do you think is clearer personally?
Option fold
Aight
map getorelse is a tad bit confusing if you don't know option is iterable
07:00
map specifically?
Yeah
Fold can be plausibly passed off as "apply and if there's something, get it"
Well I guess you can think of mapping as being not for just iterables but for turning containers of X into containers of Y
gtg for now but make the change
Something something gonads are hominids end functions in cat gory of X
@lyxal 👍
If there's nothing else, I think this can be merged
The vatom discussion can be for another pr
!!/status boring
07:10
Bot status: Online
Uptime: 7:31:07.391378
Running since: 2023-02-15T23:39:22.756298
Errors since startup: 0
Cool
07:52
ysthakur approved #1611 (Make Lambdas Great (for the first time actually)): "Nice work"
Lyxal enqueued pull request #1611 (Make Lambdas Great (for the first time actually)) in Vyxal/Vyxal
Lyxal merged pull request #1611 (Make Lambdas Great (for the first time actually)) in Vyxal/Vyxal
ysthakur deleted branch v3-better-lambdas-mod in Vyxal/Vyxal
Lyxal deleted branch gh-readonly-queue/version-3/pr-1611-e6282638f50a0e96ca90268a746d3cb44d58fa5e in Vyxal/Vyxal
08:05
Interesting
That's how it handles the new merge queues
08:31
So now that's merged, I'm going to be moving on to adding a few structures and fixing literate mode lambda parameters
@user that would be really cool
his last message was “/“ lol
08:50
Wherever he is, I hope he's happy
!!/register
@Niko You have been registered! You don't have any permissions yet; ping an admin if you think you should.
does registering make vyxal bot like me?
can i even befriend vyxal bot
I hope so.
do we have data for vyxal bot’s gender
09:00
@lyxal wth is that supposed to do
Is that literate mode?
what would make you think that
:= just looks a bit off
Welp guess Ill have to skim through the lexer.
09:17
In scala, when do you use an object and when do you use an enum?
09:33
@mathcat x, y = item; x + y for item in [[1,2], [3,4]]
@mathcat it's variable unpacking
@mathcat an enum is when you have a collection of similar objects that would otherwise be constants
So for example, you might make an enum to represent colours
And you might have Colours.Blue or Colours.Red
An object is when you have something you want to act like a class, but you only want one instance shared between every file in your program
It's known as a singleton in OOP
And so there is only ever one instance of the object
10:28
@lyxal ah
 
1 hour later…
11:52
alright
time to fix this bot once and for all
I... why tf is it back online
¯\_(ツ)_/¯
!!/status boring
!!/status boring
Bot status: Online
Uptime: 12:13:54.464874
Running since: 2023-02-15T23:39:22.756298
Errors since startup: 0
Bot status: Online
Uptime: 12:13:54.524197
Running since: 2023-02-15T23:39:22.756298
Errors since startup: 0
hmmmmmmmmmmmmmmmm
I got in first :p
11:55
that's interesting, lemme go review my logs
conclusion: idfk
!!/permissions grant 513493 member
@Ginger User PyGamer0 is now a member of group member.
!!/permissions grant 504063 member
@Ginger User Niko is now a member of group member.
@PyGamer0 @Niko yall are now members
@Niko don't worry, Vyxal Bot loves and carnally desires everyone, especially Poland
@Niko no, but it's a piece of software, so I refer to it using neuter pronouns
!!/help
12:03
I'm Vyxal Bot 2.0.0 made by Ginger and hyper-neutrino.
All of my commands start with !!/
If you want help for a specific command, do !!/help <command name>.
New to Vyxal? Try !!/info for more information.

Command list: coffee, die, groups, help, info, maul, permissions, ping, register, status
!!/coffee
Sorry Jacob, I'm afraid I can't do that.
@lyxal I don't really like the current "I don't know what you meant" bot error message, because it implies that the bot knows what you meant and is refusing to do it, even though that message just means that what you sent didn't match any of the giant collection of regexes the bot uses for command parsing
^^ was because @Jacob didn't supply a parameter, but that's not very clear
!!/help coffee
@Jacob !!/coffee <user|me>: Brew some coffee
12:04
@Ginger well that sounds like an easy fix
!!/coffee me
@Jacob Here's your coffee: ☕
needed that thanks
ok goodbye
lol
@lyxal yeah, but I still want the message to be some snarky AI goodness
If you don't give it arguments, the bot could say something like "I'll give you a hint. <parameter>. That's all I'm gonna say. One word. <parameter>."
12:08
the problem is that currently it has no way of telling what you did wrong
it only knows that what you sent didn't match any regexes
12:29
You do not match any regexes, mortal.
Lyxal created branch better-structures-mod in Vyxal/Vyxal
@Ginger Id just do nothing, like v1
‘lo
o/
o.o
WotD (p ed): timenoguy: a rope stretched taut to prevent chafing
13:09
@Ginger nice
!!/hug
Sorry PyGamer0, I'm afraid I can't do that.
not nice
where old bot :(
!!/make me a cookie
Sorry PyGamer0, I'm afraid I can't do that.
@PyGamer0 dead™
don't worry, I am going to add cookie commands today
13:28
!!/status boring
Bot status: Online
Uptime: 13:49:24.709624
Running since: 2023-02-15T23:39:22.756298
Errors since startup: 0
alright, that should take care of that
Ah'll be bahk.
Well, here we are again.
oh wait, no it doesn't :p
the bot's code is a bit messy, so I'm going to do a little refactoring
Lyxal opened pull request #1615 (Add some cool structures) in Vyxal/Vyxal
13:38
to anyone looking at the PR: you'll notice on line 171 of Interpreter.scala I've left the implementation of unfinished. That is because a) I do not know how to make VList take a LazyList object, b) I still need to make sure I'm passing context variables in the right order and c) I need to figure out a way to get the first and second item of initalVals if there's only 0/1 item(s)
Feel free to suggest/commit any ideas y'all have on doing the above
or anything else related to the PR for that matter
o/
13:50
Ah'll be bahk.
Well, here we are again.
Ah'll be bahk.
Well, here we are again.
ok, bot
!!/help
I'm Vyxal Bot 2.0.0 made by Ginger and hyper-neutrino.
All of my commands start with !!/
If you want help for a specific command, do !!/help <command name>.
New to Vyxal? Try !!/info for more information.

Command list: coffee, cookie, die, groups, help, hug, info, maul, permissions, ping, register, status
!!/make me a cookie
@Ginger Here you go: 🍪
!!/hug
13:51
@Ginger (づ。◕‿‿◕。)づ
good bot
next up: issue commands
 
1 hour later…
15:07
47 messages moved to Sandbox
@Ginger Can't you just test in the sandbox? :p
Ah'll be bahk.
Well, here we are again.
!!/help issue
@Ginger !!/issue open [in <repo name>] __Name__ description: Open an issue in a repository (defaults to Vyxal).
15:19
good job
!!/issue open in Sandbox cookie cookie.yes
Sorry mathcat, I'm afraid I can't do that.
you forgot the in
scam
oh
Sorry mathcat, I'm afraid I can't do that.
15:24
!!/issue open in Sandbox cookie cookie.yes
vyxalbot2[bot] opened issue #60 (cookie) in Vyxal/Sandbox
tags aren't supported yet, I might add them later
You might want to add edit handlers
@mathcat too much effort for too little payoff
15:29
wdym, iirc you just had to listen for event 2?
yeah, and have the bot edit its message
And sechat can't? :d
IMO that's pretty important for a chat api
but it's your bot, so you do as you do do
@mathcat it can, but I just don't want to q:
anyway: time to add !!/run
did vyxalbot 1 have edit detection?
I know APL bot did and if you edit a message it'll just re-handle and delete, edit, or reply as needed
@hyper-neutrino it did lmao
15:37
IIRC I did that purely to stop people from using a command to get a response and then editing their message to make it look like the bot was answering them
there were several changes I made to the bot including removing it from the organization only because of too much tomfoolery from the rest of y'all :P
that's what happens when you do excessive amounts of trolling
@Ginger watch out for recursive messages
don't worry, I've handled that
the bot ignores itself right
yes
15:44
Ah, so no recursive loops?
 
1 hour later…
16:45
@hyper-neutrino i once wrote a discord bot and i come online to like 600 pings because i made the bot report swear words but it was also reporting itself lol
lmao nice
17:38
!!/issue open in Sandbox Coookie Cookie
vyxalbot2[bot] opened issue #61 (Coookie) in Vyxal/Sandbox
Seggan approved #1 (Get the bot (fully) functional)
18:00
@mathcat Enum variants are objects :)
But I assume you meant enums vs normal classes, and what lyxal said is correct
Oh you meant the object keyword
18:55
can code of conducts be added org-wide in .github or does it need to be per repo
how should I implement !!/run? I was going to use the PythonAnywhere site, but it needs a session code, which I don't know how to generate
I could parse it from the HTML, but that feels like cheating
that's how vyxapedia does it lmao
lol
who made the PythonAnywhere site?
was probably a collaboration like all things here :P
mostly lyxal though I think?
sauce?
19:01
if you're looking for how vyxapedia does it it's at github.com/Vyxal/vyxapedia/blob/main/src/routes/tio/…
no, the PA source
it's not on GH I think
oh lol
it do look like it
wow, that's jank
like painfully jank :p
we really need to rewrite that site at some point
actually, I'd be fine with doing the rewrite
I'm going to ask pxeger if I can use RTO for this
...wait
!!/status boring
Bot status: Online
Uptime: 3:53:47.499033
Running since: 2023-02-16T15:19:14.613781
Errors since startup: 0
!!/permissions list 554550
19:15
@Ginger That user is not in my database.
hmm
@Jacob do you want to be able to use member-only bot features?
GingerIndustries created branch run-command in Vyxal/VyxalBot2
GingerIndustries closed issue #2 (The bot reports events in private repos) in Vyxal/VyxalBot2
GingerIndustries opened pull request #6 (Run command) in Vyxal/VyxalBot2
pro gamer tip you should link PRs to the issues they solve so that people can more easily navigate between related things
yeah, but the run command PR doesn't have an issue
and the repo issue didn't have a PR
was that not #4
19:24
oh yeah lmao
I commited stupid there
skill issue
19:48
@Ginger oh yeah thanks
@Jacob you need to type !!/register
then I can grant you perms
20:04
@user I did, yes
!!/register
@Jacob You have been registered! You don't have any permissions yet; ping an admin if you think you should.
nice
I'm slowly getting more familiar with scala syntax
The next step is to actually clone v3 :d
!!/permissions grant 554550 member
20:08
@Ginger User Jacob is now a member of group member.
@Jacob congration, you are now a bot member
@Ginger IIRC cjquines did do a rewrite a few months ago.
It was mostly the keyboard and search part though.
Ah'll be bahk.
Well, here we are again.
!!/sus
@Ginger ඞ
20:15
sussy
among us
wait, frick
@mathcat That was frontend stuff iirc
Ah'll be bahk.
Well, here we are again.
sus amongus
@Ginger ඞඞඞඞඞ
good bot
20:17
!!/die
@user You do not have permission to run that command (must be a member of group "admin"). If you think you should be able to, ping Ginger.
skill issue
I can kick you any time I want
@user wait were we talking about backend?
nvm then
14 secs ago, by user
I can kick you any time I want
20:17
I thought Ginger was
!!/die
@mathcat You do not have permission to run that command (must be a member of group "admin"). If you think you should be able to, ping Ginger.
gash
37 secs ago, by Ginger
skill issue
21 secs ago, by Ginger
14 secs ago, by user
I can kick you any time I want
20:18
19 secs ago, by mathcat
21 secs ago, by Ginger
14 secs ago, by user
I can kick you any time I want
Bye bye bot
please do not actually kick it, IDK what will happen but it'll probably be bad
My heart and allegiance are with Vyxal Bot 1. Vyxal Bot 2 will never have my loyalty
@Ginger I've actually kicked it once, nothing happened
And I didn't kick it this time, I just ignored it
@user shall vyxal bot 2 rest in peace.
Time for a coup
Let us reanimate Vyxal Bot (not Vyxal Bot 1, just Vyxal Bot, because it is the only true Vyxal Bot) and restore it to its rightful place
(just kidding, it's great that you've rewritten the bot, Ginger)
20:21
lol
@user I mean, my end goal is for them to be (mostly) identical in terms of commands
maybe some details will be a bit different but the behavior should be pretty similar
@user That's very surprising considering that sechat is known to crash if you look in the direction of the device it's running on :p
It's good you edited that, I was about to make a dirty joke :P
⦂|
...aw cmon man why'd you have to say that
I didn't actually make the joke, did I?
@user i saw that lol
00:00 - 21:0021:00 - 00:00

« first day (1035 days earlier)      last day (740 days later) »