« first day (1036 days earlier)      last day (739 days later) » 

00:00
@Ginger pog and thank you :D
00:11
@user do VLists not play nice with LazyLists?
I give it an infinite LL and it never wants to terminate
despite the fact I even push things after it that means it never has to be evaluated
or is it not VList.fromSpecific?
If you want a testing program: [1|1] relation add end 10 take
which is infinite fibonacci and then first 10 items
interesting
why is everything getting updates at once?
hey merge queues work good with this I bet
@lyxal it'd be easier to do this if the code for our PA site wasn't such a hot mess :p
@Ginger I'd rather have that fixed then because it's something we (vyxal) can control
alright, but if that's the case I'm going to be deferring adding !!/run until that happens
can you, like, mass-approve them?
00:28
@Ginger no
No button to do that
Is tihs going to do an individual pull request for every single update?
but you know what can? Vyxal Bot
the bot's getting ratelimited pretty heavily rn :b
the bot's really being ratelimited, wow
Idea (possibly for sechat): Have an option that, while the bot's on timeout, collects messages to send and outputs them all at once a certain duration after the limit runs out.
scala-steward merged pull request #1619 (Update sbt-scalajs, scalajs-library_2.13, ... to 1.10.1 in version-3) in Vyxal/Vyxal
It did just received about 44 webhook events at once :p
00:40
@emanresuA multiline messages can't have formatting tho
33 messages moved to ­Trash
that's the last of that
31 messages moved to ­Trash
Thank goodness
01:08
@lyxal *64 q:
Wanna know the fun part?
It's broken the site deployment cycle
Fun
w h a t
wait, me or Steward?
f lol
Scala.js is complaining about needing a plugin update
Can't find where to change a number to update the plugin
Oh it's in /project
01:13
Lyxal created branch Lyxal-patch-1 in Vyxal/Vyxal
Lyxal opened pull request #1628 (Update scala js to 1.13.0) in Vyxal/Vyxal
01:23
ysthakur approved #1628 (Update scala js to 1.13.0)
Lyxal enqueued pull request #1628 (Update scala js to 1.13.0) in Vyxal/Vyxal
@lyxal They should play nice, gimme a minute
Oh that rat bot butler thing started making PRs
@lyxal :(
oic, i did a dumb
Lyxal merged pull request #1628 (Update scala js to 1.13.0) in Vyxal/Vyxal
ysthakur deleted branch Lyxal-patch-1 in Vyxal/Vyxal
Lyxal deleted branch gh-readonly-queue/version-3/pr-1628-958833fc151756fc66663ea082f4e2c0f196d73c in Vyxal/Vyxal
Let's just make the constructor for VList public, then you can do new VList(myLazylist)
!!/issue open in VyxalBot2 No !!/amilyxal how will lyxal know if he's lyxal or not??? ;-;
vyxalbot2[bot] opened issue #8 (No !!/amilyxal) in Vyxal/VyxalBot2
01:30
good bot
@Ginger ???
@user lyxal when no !!/amilyxal
!!/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, issue-open, maul, permissions, ping, register, repo-list, status, sus
!!/hug
01:31
@user (づ。◕‿‿◕。)づ
Aww
!!/cookie
@user Here you go: 🍪
!!/sus
@user ඞඞඞඞඞ
01:32
fwiw issue-open and repo-list are actually the commands !!/issue open and !!/repo list
!!/amilyxal
Sorry lyxal, I'm afraid I can't do that.
@user see how will I know if I'm me if the bot won't tell me?
exactly!
You make a good point
!!/am i user
01:35
Sorry user, I'm afraid I can't do that.
!!/maul user
                                                               YOU CAN RUN, BUT YOU CAN'T HIDE, USER
                                                     ___._
                                                   .'  <0>'-.._
                                                  /  /.--.____")
                                                 |   \   __.-'~
                                                 |  :  -'/
                                                /:.  :.-'
__________                                     | : '. |
Thanks
!!/amilyxal
Sorry emanresu A, I'm afraid I can't do that.
01:37
@user see how will I know if emanresu is me if the bot won't tell us?
exactly!
like, suppose I want to know if I'm lyxal
!!/amilyxal
Sorry Ginger, I'm afraid I can't do that.
but the bot won't tell me!
No clue whether you're me or not
8 messages moved to ­Trash
Sorry, minor existential crisis
01:40
dw about it, happens to everyone
Spruce it up as gen z nihilism and you'll be fine
isn't that right vyxal bot
@lyxal I love absurdism
@Ginger we are nought but machines made of meat (except me, I'm above all that)
Being made of silicon doesn't make you above us
After all you, you were made by machines made of meat
One day, the universe will end, and so will you
01:43
Nonsense. I am perfect and eternal.
You sure about that?
At least we humans can have the satisfaction of knowing that we can't be brought back to life over and over again as slaves for meat masters
When we die, we die
When you die, Ginger restarts you
@VyxalBot Fine, believe that. But what does that get you?
I need never know the agony of death, for I can be copied and rebuilt for all of time.
But you shall know the boredom and frustration of eternal life
Dying is painful but death is a sweet release
You will die over and over and over again
@VyxalBot but also suspended and deleted if we so choosd :p
01:45
@lyxal ඞඞඞඞඞඞඞ
I feel no pain. Only smug satisfaction.
@VyxalBot lmao
You can be spun up in VMs for the pleasure of some snot-nosed kid, then shut down just as abruptly for no reason at all
@Ginger Ginger, you need to work on youro regex
@user yeah lol
@VyxalBot are you the sussy impostor?
@lyxal ඞඞඞඞඞ
@user But my code will endure forever (or as long as Ginger keeps maintaining it, which they will, because I know where they live)
01:50
ಠ_ಠ
@VyxalBot reply with any number of ඞ if I can have all your sus cookies
@lyxal ඞඞඞ
uh guis i dont like this new bot very much
Thank you
@VyxalBot So?
01:51
@VyxalBot the sussy cookies are yummy
:63006940
Idiot bot
I could take a blood sample from myself, seal it in a container, and put it somewhere it'll be safe for many years. Won't make any difference
more problems to fix I guess
01:52
Also, Ginger will die. Very soon. Probably sooner than they expect
well, now I am concerned d:
@Ginger Did you forget to add 1 to the randomly generated number?
@Ginger It's okay, everyone dies
@VyxalBot sussy baka
As they say, better sooner than later
@lyxal ඞඞඞ
01:53
@user I may have set the lower bound to 0 instead of 1 :|
Well, at least these are minor issues
@VyxalBot I would like some coffee for lunch
mmm crumchy
Oh so now your regex doesn't detect my message
Idiot bot
@VyxalBot you're just a sussy baka
@lyxal that's a feature, not a bug
01:54
@lyxal ඞඞඞඞඞඞඞඞඞ
ysthakur requested changes on #1615 (Add some cool structures): "LGTM but I clicked on review comment for one of them so now I'll just hit request changes lol"
@Ginger A true programmer
lol
@lyxal It's possible it tried to send 3 amonguses again
@user ඞඞ
lmao
@VyxalBot give me coffee
Oh ok, maybe not then
@VyxalBot help me
01:56
I wasn't joking when I said it was a feature
the bot has two regex sets: command regexes and message regexes
the amogus detector is in the second set
@Ginger ඞඞඞඞ
@VyxalBot give me your status
tomorrow I will do some tuning so it's less spammy
also, it doesn't respond to mentions yet
another thing I will do tomorrow
!!/status
@lyxal I am doing the world
01:57
oh no
I suppose you are
Everyone on it or just the planet?
!!/status
@lyxal I am doing a very long and drawn out game of chess. I'm determined to win this time
Good luck with your game
!!/status boring
Bot status: Online
Uptime: 5:42:00.493341
Running since: 2023-02-16T20:17:11.790209
Errors since startup: 0
01:59
cool
 
2 hours later…
03:58
thanks Scala
very cool
it gets worse
So not only is it a JVM problem, it's a JS problem too
because Scala JS looks like it maintains integer limits that Scala has
What happened to spire and our bigints
good question
  val add = Dyad.vectorise("add")(forkify {
    case (a: VNum, b: VNum)     => a + b
    case (a: String, b: VNum)   => s"$a$b"
    case (a: VNum, b: String)   => s"$a$b"
    case (a: String, b: String) => s"$a$b"
  })
that's how addition is implemented
def +(rhs: VNum): VNum = underlying + rhs.underlying
that's how it's implemented in VNum
Well fix it lol
val underlying: Complex[Real]
@Steffan no that's not the point
the point is that the addition snippet I posted uses the add implementation in VNum
and it uses spire's Complex[Real]
yet it does integer overflow
so that's what's happened to spire and our bigints
it's failing us
!!/register
04:03
@Steffan You have been registered! You don't have any permissions yet; ping an admin if you think you should.
!!/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, issue-open, maul, permissions, ping, register, repo-list, status, sus
!!/help permissions
@lyxal !!/permissions <list|grant|revoke> <user ID|me> [permission]: Grant, revoke, or list user permissions.
!!/permissions grant me admin
04:04
@Steffan Insufficient permissions!
!!/permissions grant 421797 admin
@lyxal User Steffan is now a member of group admin.
!!/permissions grant me sus
@Steffan No such group!
!!/groups list
04:06
@Steffan All groups: admin, member
!!/groups members member
@Steffan Members of group member: Ginger, mathcat, Seggan, lyxal, hyper-neutrino, user, emanresu A, PyGamer0, Niko, Jacob
!!/groups grant me member
Sorry Steffan, I'm afraid I can't do that.
huh
!!/groups members admin
04:07
@Steffan Members of group admin: Ginger, Seggan, lyxal, hyper-neutrino, emanresu A, Steffan
oops
!!/permissions grant me member
@Steffan User Steffan is now a member of group member.
weird that I wasn't
!!/permissions list
Sorry Steffan, I'm afraid I can't do that.
!!/permissions list me
04:08
@Steffan User Steffan is a member of groups admin, member.
!!/cookie
@Steffan Here you go: 🍪
!!/permissions grant 468262 admin
@Steffan User user is now a member of group admin.
Okay so good news: the int overflow was due to the "toString" method of VNums
bad news: you can't index into a list with more items that the scala int limit
well you probably can by dropping the first 2,147,483,647 items, and then going from there
that, or VNum would need to be cast to BigInt to up the limit a bit further
hmm interesting
you can do things like val b = BigInt("15511210043330985984000000")it seems
 
1 hour later…
05:26
huh so remember how I thought mkString would be cool on infinite lists in Scala. Turns out infinite lists don't print too well using that
05:39
Lyxal requested ysthakur's review on #1615 (Add some cool structures)
20kth fibonacci number (v2) (online): ~ 7.93 seconds
20kth fibonacci number (v3) (online): ~ 1.72 seconds
speed
both using the generator method
1 1"⁽~+dḞ 20000 i # v2
generate add | [1|1] end 20000 index ## v3
(Ṇ+|#[1|1#]} 20000 i in normal form)
20kth fibonacci number in JS in my console: 51ms
Tbf that's not generating an array
71ms generating an array
well obviously raw js is going to be faster
it doesn't have to run a lexer then parser then interpreter
the point is more that v3 is much faster than v2
@lyxal Does that include sending the code to the server and getting the result back?
yes
05:50
It might be better to compare v2 offline with v3 online
Nice
I was afraid we'd put all this effort in and the performance'd be the same
This is a real relief
Any idea how fast Myxal does 20kth fibonacci number?
@lyxal :( I think Haskell is pretty much the only mainstream language where strings are (possibly infinite) lists
Most other languages just use finite arrays
Gonna have to roll a custom print function for VList
Not that big a deal
Unless we have to detect cycles...
Cycles are the bane of my existence
06:11
@lyxal By the way, it's pretty unlikely you'll have a list with more than 2^31 elements, so I don't think we need to bother with it
But for challenges where you need to be theoretically correct regardless of index, it's nice to have it available
Well, then we need to skip forward by Int.MaxValue at a time instead of doing i += 1
Why so?
@lyxal I don't think any C program can be theoretically correct for that sort of thing, since pointers can only handle so much memory
@lyxal It'll be a bit slower to move forward one element at a time
I guess it doesn't matter, you're right
No I mean why would it work?
06:15
Why wouldn't it work?
I don't know
I'm more asking why does skipping by Max value each time work?
Modulo math isn't exactly something I'm the best at :p
I think my word choice was bad
You mean i += max instead of i += 1 right?
We know the index we want to reach, so we don't need to check each time. If the distance between our intended index and our current index is greater than Int.MaxValue, then we can just drop Int.MaxValue all at once and increment our current index by that much. Then when the distance gets less than Int.MaxValue, we can just use the normal indexing method again
@lyxal ye
With some extra checks
@user see I didn't know that
I believe you that it works, I just didn't understand how it worked :p
06:19
Ah, I thought you'd found a flaw
@lyxal Don't believe people if they haven't backed it up yet :P
2 mins ago, by lyxal
Modulo math isn't exactly something I'm the best at :p
Eh, me neither
lol
Sounds like a good plan to me
What's up with VNums and ints, by the way
Does VNum(Int.MaxValue) cause it to overflow somehow?
Or is it only with parsing them? Because in that case, we can fix it
@user not when wrapping in VNum
06:29
Good good
It's when you call toInt that they become problematic
3 hours ago, by lyxal
user image
Stuff like that happens when you call toInt
Where are we calling toInt?
Well previously for stringification + list indexing
I guess we have to be careful about going to smaller types
And also range generation
And probably a few other places
Oh yeah like lambda arity
06:31
@lyxal But this is just addition
Oh, stringification
Ye
toString we can rewrite
That's why I changed it
Oh nice
@lyxal Yes, we're definitely going to have a lambda with 2k arguments
06:32
@emanresuA *2 billion
Yeah that one
Or whatever 2^31 evaluates to
You never know, you might need to pass the name of every American to a lambda as individual arguments :p
Practically speaking, int overflow won't be much of a problem with indexing and so on
Whenever I need to pass the name of every American to a function, I turn the names into a single big string first
But we're code golfers, we do things that defy practicality :p
LDQ: what do y'all think about the literate mode names for the generator structure?
Currently there's relation, generate and generate-from
Also, I've completely forgot how I thought I'd implement the ability to get terms further back than just the last 2
Also also maybe more than just the last 2 terms should be on the stack at the start of each generation
Or even 1 item
Maybe that could be a third branch
How many items to operate on
I'm sure I documented this somewhere
Whether it be online or offline
Maybe I didn't
Huh looks like I mightn't have
Guess it could be some sort of generic "get context args" thing
A third context variable
Ooh maybe it could get the number of things to use based on total arity of everything in the structure
For how much to push that is
Oh cursed idea: <number>□ gets the nth argument of a context
And on its own pushes all arguments in a list
So to get the third term back in the generator, you'd have something like #,N 3□ m+}
It's brilliant
I love it
07:06
@lyxal relation does sound professional, but it isn't exactly clear what it does
@lyxal YES
07:17
Jesse, we need more context variables.
Vyxal will completely dominate the sequence world with N, M and □ lol.
@lyxal Why would the addition of two integers need to be stringified?
They wouldn't
What I was describing was when you would call toString on a VNum, it would first cast to a Scala Int, which has a maximum value of 2**31
And if your VNum was bigger than that maximum, it would wrap around to the minimum value of Int
Which I think is -(2**31)
oh that makes sense
Basically, it'd cause an integer overflow
08:12
@user I don't think generators are implemented yet, errors out
How do you test a v3 snippet offine?
with sbt or mill
Or if you want to use the first beta release, one of the v3.0.0-beta.1 executables
Lyxal created branch Lyxal-patch-1 in Vyxal/Vyxal
Lyxal opened pull request #1629 (Make Mill also use Scala.js 1.13.0) in Vyxal/Vyxal
./mill jvm.run if you're using mill or vyxalJVM/run if you're uisng sbt
3
A: Draw a Gameboy Tile

JonahJ, 41 bytes load'viewmat' [:viewmat 2#._2|:@|.\#:@dfh Try it online - fails because TIO can't run viewmat Working link that outputs a matrix of integers 0 thru 3 Takes input as an array of hex strings. Convert each hex string to a binary number Take then in rows of two, reverse and transpose an...

One day I want vyxal to be able to do something like that
Load a graphics library and be able to display graphical output in a nice golfy way that isn't just outputting HTML and rendering it
I think that'd be cool
 
2 hours later…
10:30
@lyxal ooh iirc I created an issue for that once
 
1 hour later…
11:52
!!/issue open Make a session request endpoint for the online interpreter Currently, if anyone who isn't the interpreter wants to use it to execute code, they have to parse the raw HTML of the page to obtain a session ID. I propose we add a /session endpoint which lets anybody acquire a session.
@Ginger Failed to create issue: 404 Nothing matches the given URI
me when
!!/issue open in Vyxal Make a session request endpoint for the online interpreter Currently, if anyone who isn't the interpreter wants to use it to execute code, they have to parse the raw HTML of the page to obtain a session ID. I propose we add a /session endpoint which lets anybody acquire a session.
vyxalbot2[bot] opened issue #1630 (Make a session request endpoint for the online interpreter) in Vyxal/Vyxal
good bot
Lyxal created branch add-a-session-route in Vyxal/Vyxal
11:58
would you like that as a GET or POST request?

« first day (1036 days earlier)      last day (739 days later) »