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

00:42
@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
01:14
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
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
01:18
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
01:21
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
01:25
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
01:37
@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
01:40
arity = arity of first element
the arity=-1 part is so that internal functions can tell if the arity has been overwritten elsewhere
02:33
Gotta love it when someone accidentally trips the ram limit on a process
 
5 hours later…
07:17
@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
07:34
@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
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
07:39
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
07:43
¯\_(ツ)_/¯
I'll make a poll later
 
1 hour later…
08:53
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?
09:11
It converts 11 to a list of digits
09:26
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
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.
13:42
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
13:54
I see Vyxal/Sandbox too
uh oh
it's cloned itself
oh no
13:57
@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?
14:43
cgccuser opened issue #1049 in Vyxal/Vyxal: Digraphs for creating lists
15:35
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?
15:54
@Seggan Also, is there any reason multiply takes the stack as an argument?
16:27
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
16:29
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
16:31
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
16:47
How will scala be compiled to JS?
scala-js?
 
1 hour later…
18:10
@mathcat Yup: scala-js.org. Compiling to JS already works
@VyxalBot @Seggan How do you run tests in Myxal?
 
1 hour later…
19:40
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
20:04
lol nice
@emanresuA :(
20:21
@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
21:00
@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?
21:35
cgccuser opened PR #3 (Vyxal/Myxal) (Vyxal:test-workflow → Vyxal:main): Add workflow to run tests
21:50
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
22:13
@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
22:38
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 (1003 days later) »