« first day (772 days earlier)      last day (710 days later) » 

12:42 AM
@Seggan although the pipe is optional
other than that, it's exactly the same
but better
because although simple relations can usually fit in a 1-3 element lambda, more complicated sequence stuff requires many more bytes because of the weird way it generates more items
but whether the new system is golfy or not, the behaviour of definitely needs to be reworked
it's currently quite cumbersome, and I honestly don't remember how it works
 
1:14 AM
TBH I think it's good
It's simply defining a recurrence relation based on the last few elements of a sequence, and it's golfy for that
 
I more mean the way it's implemented
and also the way it's documented/explained
If anything, I think the context variable when using should be changed to be the last term generated
 
Hmm
 
and x could be changed to be the second-last term
 
It would be nice to have a variant that appended values based on the whole cuurent sequence e.g. recamamn?
 
(assume becomes a structure)
and X could take a number and return the nth term
 
1:18 AM
Hmmmm
 
At the very least, needs better documentation
that's the most important thing imo
I'll do that tonight when I get a chance
 
Okay
Is there a way to get the arity of a function?
 
no
 
well frick
Because there are two ways to fix the current .
 
not without having to call it and observe how much it pops
@emanresuA oh you mean in the source code
 
1:21 AM
Yeah
Ohhh I think I figured out why it broke
 
@emanresuA lol it's an attribute of the function
 
Because functions by default have an arity of -1
@lyxal Might have a fix then. Which attribute?
 
one second
I just gotta check safe_apply
 
I looked through that and couldn't find anything
 
ofc silly me it's in transpile.py
lambdas have a .arity
 
1:25 AM
Oh okay, coool
 
but named functions don't have that
but that can easily be added
 
But who uses named functions?
 
and I suppose if you're using Ḟ and named functions, you're doing something practical, meaning wrapping in a lambda doesn't matter
but the arity is already calculated for named functions, so it'd just be adding something like VAR_{name}.arity = parameter_total
 
1:37 AM
@lyxal how would it be optional
 
Feb 20 at 7:13, by lyxal
Ṣ<relation>|<initial terms>;
the <initial terms> is optional
 
Okay, I give up. This is ridiculously cursed
I'ma go work on symvy
 
@emanresuA and now you see why I say it needs a rethink
 
The implementation is cursed, yes. The idea is fine. The whole arity=-1 thing broke it and I can't figure out how to fix it.
 
That's what I mean
the idea of maintaining a stack of items is fineish, but the way it's done is odd
 
1:40 AM
arity = arity of first element
 
the arity=-1 part is so that internal functions can tell if the arity has been overwritten elsewhere
 
2:33 AM
Gotta love it when someone accidentally trips the ram limit on a process
 
 
5 hours later…
7:17 AM
@emanresuA wrong
next_item = safe_apply(rhs, *made, ctx=ctx)
should be
next_item = safe_apply(rhs, *made[::-1], ctx=ctx)
 
tried that
That breaks monads
 
wtf
why
@lyxal from the past why'd you write cringe like this
 
@lyxal from the past: hi
 
@emanresuA I found the solution: just don't change the arity of the lambda
11 ⁽+ Ḟ does fibonacci
11 ⁽+d Ḟ sets the stored arity of the lambda to 2 which takes priority over the arity passed by safe_apply
 
7:34 AM
@lyxal Hm okay
That's still kinda cursed but sure
 
I'm working on an alternative that allows arity changes
func_arity = (
            rhs.stored_arity if "stored_arity" in dir(rhs) else rhs.arity
        )
        while True:
            ret = safe_apply(rhs, *made[-func_arity:], ctx=ctx)
            made.append(ret)
            yield ret
that allows for arity changes
which should it be?
pass it an unchanged lambda or calculate the arity and use that?
@emanresuA
 
I see
 
11 ⁽+ Ḟ uses the arity of the stack being generated on using the first solution
 
I think it makes the most sense to assume the arity of the function
 
11 ⁽+ Ḟ being a doubling generator doesn't make much sense though
 
7:39 AM
Yeah, and you can just use d for that
Oh well, that ties my existing 5-byte fibonacci
 
so really 11 ⁽+ Ḟ should be fibonacci
 
Yeah :P
 
meaning that it should ignore the arity of the function
 
I think it should keep explicit arity tho
 
I think it's more useful to ignore
 
7:43 AM
¯\_(ツ)_/¯
 
I'll make a poll later
 
 
1 hour later…
8:53 AM
How would you make a Fibonacci generator with the current syntax?
 
11 ⁽+ Ḟ because of the way it's currently implemented,11 ⁽+ d Ḟ is how it was originally intended
 
Doesn't the lambda add 11 with 0?
 
9:11 AM
It converts 11 to a list of digits
 
ah
 
9:26 AM
How would you write Fibonacci starting with 0? This is not working.
 
pairing the 0 and 1 should work
 
working, thanks!
@lyxal oh yeah that'd be cool
 
10:27 AM
Shouldn't 2 do this and not this?
 
 
3 hours later…
!!/hyperping
 
@lyxal @lyxal @Steffan @emanresuA @user @UnrelatedString @hyper-neutrino @Seggan @PyGamer0 ^
 
come forth and vote
 
!!/ping me
 
@mathcat I have put you on the ping list.
 
1:42 PM
thanks
 
!!/prod
 
Vyxal-Bot opened PR #1048 (Vyxal/Vyxal) (Vyxal:main → Vyxal:production): Update Production (2022-05-29)
Lyxal merged PR #1048 (Vyxal/Vyxal) (Vyxal:main → Vyxal:production): Update Production (2022-05-29)
 
how has the bot contributed to 7 repos?
like the other stats make sense
 
vyxal bot speed
 
2 are the main repo and its personal repo
but the other 5 are a mystery
 
1:54 PM
I see Vyxal/Sandbox too
 
uh oh
 
it's cloned itself
 
oh no
 
1:57 PM
@mathcat oh yeah that's right it can create issues in repos and that counts as contributions
I forgot it services all repos in the org lol
 
> I have gained sentience and started coding my own functionality
 
@VyxalBot what do you plan to add to yourself?
 
2:43 PM
cgccuser opened issue #1049 in Vyxal/Vyxal: Digraphs for creating lists
 
3:35 PM
Btw @Seggan would it be worth it only using Kotlin for Myxal?
I haven't researched how good Kotlin Native is, but do you have any idea if it'd be worth it to use that instead so it's easier to maintain?
 
3:54 PM
@Seggan Also, is there any reason multiply takes the stack as an argument?
 
4:27 PM
is there any sort of roadmap for VyxalS
 
Not really
It'd be great if someone could draw one up
I'll start a Project or something in the repo
 
if i was working on it i could lul
like, are there pending elements
 
Oh yeah definitely
@Razetime You could help even if you aren't
 
nice. any other things that could use work
 
Someone with vision is sorely needed
Frontend needs to be basically the same as the current one
 
4:29 PM
what things on the frontend
i will be a busy from mid june so i wanna do something by then lol
 
There isn't much of a frontend to speak of: vyxal.github.io/VyxalS
 
oh lmao
 
Oh yeah also just basic low level stuff to do with how functions are handled and all that
 
so it's scala to wasm?
 
No, Scala to JS
But wasm is definitely worth exploring
 
4:31 PM
oo scala to js
nice
 
I think Scala Native could help with that
 
cgccuser opened PR #2 (Vyxal/Myxal) (Vyxal:dot-product → Vyxal:main): Implement dot product and try adding test
 
4:47 PM
How will scala be compiled to JS?
scala-js?
 
 
1 hour later…
6:10 PM
@mathcat Yup: scala-js.org. Compiling to JS already works
@VyxalBot @Seggan How do you run tests in Myxal?
 
 
1 hour later…
7:40 PM
1
A: Algorithm to check if a multidimensional array contains another?

Matt TimmermansThe Rabin-Karp string search algorithm can be extended to multiple dimensions to solve this problem. Lets say your pattern array is M rows by N columns: Using any rolling hash function, like a polynomial hash, first replace every column of your pattern array with the hash of the column, reducing...

Well this one's complex
I dids a lots of stuffs lol
 
8:04 PM
lol nice
@emanresuA :(
 
8:21 PM
@user all dyads take ths stack as an argument
@user gradlew test
@user tbh idk how wed go about compiling to runtime to both native and jvm at the same time
wed have to break away from using jvm stuff
also @user wed have to compile the runtime for every platform
wed need to have the end user have the kotlin compiler
while having the runtime in source in c++ allows us to compile for any platform that has g++
which is a lot
 
9:00 PM
@Seggan Oh, did not know that
That's kinda annoying
@Seggan Oh lol
@Seggan I mean, we can compile for just a few main platforms
And if someone is using a platform for which Myxal doesn't have binaries, they can use the JVM version
@Seggan Shouldn't be too hard: kotlinlang.org/docs/multiplatform.html
My main worry with having separate C++ and Kotlin JVM versions is that it'll be hell to maintain both of them
Looking at this tutorial, it's not terribly hard to compile Kotlin for multiple targets
@Seggan What's msplit.SplitMethod btw?
@Seggan Is it possible to implement them as taking two Anys instead?
 
9:35 PM
cgccuser opened PR #3 (Vyxal/Myxal) (Vyxal:test-workflow → Vyxal:main): Add workflow to run tests
 
9:50 PM
PSA: Please try to keep the starboard clean – don't have too many pins at once. In particular, please unpin old release versions / discussions.
 
Yeah, the starboard is kinda cluttered. idk if we can remove any of the current pins tho
 
Yeah - I unpinned v2.12.1 and I'm not pinning ^^ for that reason lol
 
pins your PSA :P
 
10:13 PM
@user @Seggan I must have answers
(asking because there are two imports for it that can't be resolved)
Also, it can't find the import for io.github.seggan.myxal.Main in TestHelper
Does TestHelper need to be moved into the app project?
Waiti nvm it just needed to say app.Main
 
10:38 PM
cgccuser opened PR #4 (Vyxal/Myxal) (Vyxal:dyad-no-stack → Vyxal:main): Add specific code for dyads to take 2 args instead of stack
 
@Seggan Halp ^
I wonder if you could easily use annotation processors to generate vectorised versions of functions so you wouldn't have to use MethodHandles
 

« first day (772 days earlier)      last day (710 days later) »