« first day (757 days earlier)      last day (1018 days later) » 

00:08
Damnit
just by a second too
Actually, does it?
Looking through everything using foldl, one moment
In theory, summing an empty list breaks.
It's not foldl's problem
If you want special behavior on empty lists, you should do it before calling foldl
0 is just an arbitrary default value
0 is still the default
!!/prod
I know, I'm just saying that vy_sum should've been changed
> initial=None
00:19
Look lower than inital=None
return working if working is not None else 0
Although that is not the best approach
If we want initial to be None, that will still return 0
Yeah it should just be return working instead of returning 0 if it's None
Want me to change that?
Yes, and set initial=0
What? No
00:20
That was the original
That would break stuff
Oh, nvm
I'm not thinking
Or wait
Of course not, you're Steffan :P
vy_sum will need changed then too
can someone look at #973 before we do production?
Doing that rn
@Steffan Does it work on your computer? Too lazy to check myself
00:22
too lazy to check myself
fine I'll try it
works on my computer
Good enough for me
there's a relelvant xkcd for that, but I'm too lazy to find it
@user also i searched hoogle for Eq b => (a -> b) -> [a] -> [[a]] and didn't get any results in the base package; didn't actually know haskell had a groupBy :: (a -> a -> Bool) -> [a] -> [[a]] in Data.List :P
lol
00:30
i guess what i implemented is equivalent to groupBy . (\f x y -> f x == f y)
this is your brain on golflangs
So do we close #975 and make a new PR that just does exponents?
CMQ: v2.11.3 or v2.12?
That was crazy. I post a Vyxal answer, and literally instantly, and I'm not exaggerating, I see a +10 for that post
lmao
00:45
I'm divided between implementing tinylisp in Vyxal and implementing Vyxal in tinylisp
Do both!
i think one of those would be considerably easier than the other
Yes, implementing Vyxal in tinylisp /s
clearly
i should implement tinylisp in jelly
Too easy
Implement Jelly in tinylisp if you want a challenge
00:48
oh yes
Bonus: Implement Jelly in tinylisp by implementing Python in tinylisp and running Jelly on top of that
Vyxal does in theory have tail-call optimization
Actually no it doesn't because stacks
@lyxal Thanks but don't approve so soon
The meat of it is still not implemented
That's why I said part 1
Oh ok
I guess part 2 will be the first implementation, part 3 will be the realization that it fails horribly, part 4 will be a long struggle to get it right, part 5 will be a compromise that falls short of our goals, and part 6 will be some sketchy tweaking to get the tests to pass
Definitely not based on my own experiences
00:58
@VyxalBot T
T?
@emanresuA all occurrences of one item in another, not what T does
CMP: Opinions on this? Would be an easy change to make
Vectorizing can easily be done with v anyway
a + a[0] doesn't seem to be as easy to do though
problem is that I don't know how much backwards compatibility that'd break
Ah ok
01:07
@lyxal Oh
@user it could be perfectly fine though
@user and is probably just as if not more useful on general lists as on strings
@user so it's not a no, but a cautious yes
I've been wanting that for a while
 
2 hours later…
02:40
hey guess what guys, i found an ace. affects two elements
sympy
will post in security team later.
another reason we need symvy lol
this one has existed since at least v2.6
LMAO
Well, it's DLosc's fault /s
in The Nineteenth Byte, Nov 11, 2021 at 4:43, by DLosc
@lyxal Symbolic algebra /s
0
A: Inject arbitrary code into a compiler (cops)

SteffanVyxal, since v2.6 Why does Vyxal have so many ACEs? Commands with randomness aren’t allowed, and neither are EĖ†. Info is in the repo.

02:49
Sometimes I really hate sympy for using eval
like real displeasure and annoyance at them
We could patch sympy
...but it would take us a long time.
there's been a few attempts at doing so, but they never got merged or progressed very far
@lyxal wait does it actually
what the fuck
yes
ninja'd
Wow this is stupid
They're trying to build a safe subset of python
Why can't they just make a GODDAMN AST EVALUATOR
hey hey guys look at this
that's the cause of all the headaches
that one simple function
expr = eval(
    code, global_dict, local_dict)  # take local objects in preference
return expr
and that's used by their expression parsing function
which is used by their sympify function
Guess that means we really need to get all hands on deck to develop symvy
03:00
Honestly I have no idea how to implement my ideas for symvy
Treat it as a pre-processor
Something that expands into a normal string you'd pass to Sympy
I meant this
that's also what I meant
 
1 hour later…
04:28
One thing is, once we get symvy, then we have Vyxal 3, and we have to impelement Symvy in Scala...
Maybe we should write it in Scala from the start?
but hopefully the scala symbolic algebra library doesn't do silly things like sympy does
maybe co-develop them so that they are developed in parallel
Alternatively, if scala links well with Java, we can just copilot the conversion of python to Java and use that
I say to Java because I know that copilot works well enough with python to java
But I don't know how well it does python to scala
So long as we use type annotations in symvy and not do any extreme dynamic type casting, we'll be fine for auto conversion imo
@user can you use Java libraries in Scala?
@lyxal i think you can
Can I use Java libraries without limitation in scala or not? yes you can. Can anyone convert above code in scala? yes, I guess even you can with a little effort. See Java to Scala cheatsheet or A Scala Tutorial for Java Programmers. — senia Sep 24, 2013 at 8:32
04:45
@emanresuA apart from the lists, I think I have an idea (or at least can formulate one once I have a few more examples of your idea in practice) of how to implement it
@emanresuA i guess: fork ngn/k and make symvy :P
 
1 hour later…
06:01
I have at least four tabs of this open
 
2 hours later…
07:35
@lyxal do you autogenerate the release notes?
 
1 hour later…
08:37
!!/info
!!/run 10 2 5á¹…
@PyGamer0 0
what is á¹…?
09:30
[Discord Relay]
emanresu#3881: Well this is awkaward
 
2 hours later…
11:01
@emanresuA do you have any examples of how symvy lists work?
Because if so, I can get an understanding of them and start planning how to parse your idea
I'm thinking ANTLR at this stage
But depending on lists that might not be viable.
@PyGamer0 yes, github does it based on PR titles
@PyGamer0 insignificant, join on empty string or first positive integer where a function is true
@lyxal oh
@lyxal and does sympy support lists?
Maybe
I think it has array objects but not in algebraic expressions
is that going to be a problem?
> not in algebraic expressions
@lyxal Pretty much like any other expression, certain operators can do stuff to them and they can't be compiled into sympy. Syntax is [1, 2, [3, 4, 5]]
So what are they used for? Pre-processing?
How do they factor into the symbolic algebra?
11:33
They're more of an extension to the language to make it more powerful
They're not part of the symbolic algebra but they're nice to have and make turing-completeness a lot easier.
But how do they get evaluated? And how do they make symvy TC?
@lyxal presumably lists are evaluated like k..
11:51
Aw dang I've just realised a major problem with any symvy initiative - Sympy won't return a string that is natively symvy
Meaning that any further Sympy work on that expression won't use symvy
What if symvy is a version 3 thing and make_expression just filters out quotation marks
That could be better maybe
@lyxal oh.... yeah
lol
@emanresuA you should make your symvy idea into a separate language ..
12:08
Actually, it shouldn't matter
No wait it does
Because either the output needs to be parsed back to symvy or symvy needs to be backwards compatible with Sympy
just ditch sympy and make your own with mpmath /s
@lyxal on the jvm, yes, but not with js afaik :(
Btw I’m working on normal numbers in vyxals and we can extend it to symbolic algebra
Third party library or custom?
You can use javascript libraries from scala js of course but idk if there’s stuff for that
@lyxal custom
12:24
But for the algebra though
 
2 hours later…
14:22
@PyGamer0 theres a button
70 messages moved to ­Trash
github will you please mark merged prs as "done" so i dont have to spam the done button in my notifs
@Seggan how did you have the patience to select that many messages?
oop nvm
i found that you can shift click messages after control clicking them
ye
I just discovered that too lol
and to think I'm running for TNB RO lol /s
argh cxx makes operator overloading so annoying
ima ditch operator overloading for my number type
hey so when you make ANTLR grammers, what do you use/do?
I'm considering using ANTLR for symvy
14:30
@lyxal pay me 20 bucks and ill write it for you
what language is symvy gonna be in?
python and maybe scala
ok for python...
I say maybe scala because version 3 go brrr
lemme get my sources rq
ok so ull need to download the antlr jar
then to compile grammar files run java -jar antlr-whatever.jar -Dlanguage=Python3 -visitor -no-listener <grammar files>
itll generate a lexer, parser, and visitor in python
as for the grammar files themselves
those are just EBNF right?
14:35
whats EBNF
Extended Bracker Nues (?) Form
it's a way of specifying language grammar
idk
you can probably stick the lexing and parsing in one file
lexer rules start with an uppercase letter (i keep em all upper case) and parser rules with a lower case
you need to have a "root" parser rule that defines you file
usually file: program EOF;
basically tells antlr not to stop parsing midway through the file
the rest is relatively simple
antlr prefers matching as large a lexer token as possible
i.e.
TOKE
: ('A'-'Z')+
;
TOKEN
: 'A'
;
will always match TOKE
so basically make sure definitions don't have much overlap?
if 2 lexer rules match same length, the one defined first will win
@lyxal for lexers, yes
parser rules are context specific, as parsers should be
it wont match an if statement on a while
ok that didnt make much sense but im sure yk how lexers and parsers work
mostly lol
14:41
ok i gotta go have breakfast take a look at myxal's grammar for now
well that's good because I gotta go sleep
the lexer and parser are in 2 different files tho
I'll look at it later today
o/
 
2 hours later…
16:26
@Seggan in python? we need it in scala, not python
@Seggan you can mark all as done at once
just select all and click done
oh ur talking about symvy
however i think we should use smth like antlr with scala too
maybe I'll give that a go
 
2 hours later…
18:24
@Steffan why not antlr
they have js target too
18:48
@Steffan That is quite a bit more complicated than what we need and not too performant
As Seggan said, ANTLR should work. It's relatively simple, will basically be a single thing for all implementations of Vyxal (which is actually important now), and should work on all platforms
19:12
antlr doesn't support scala
afaik
i guess we can just use java in scalla
19:42
Yeah, ANTLR supports Java and JS, so we can generate Java for the JVM version and generate JS for Scala.JS
20:06
@lyxal That is a bit of an issue... but I think it should be possible to parse sympy back to symvy
 
2 hours later…
21:56
i have no idea how we will make modifiers postfix with antlr
might have to do the element popping part from the interpreter
it doesn't support mutual left recursion
maybe seggan knkows
just tried compiling my first myxal native program, g++ gives 1073 lines of errors smh
Oof
22:20
@Steffan nope. idk. try SO or make em prefix
what's SO?
5
oh stack overflow duh
yeah i googled and googled
ill just put that part in the interpreter or something, post-parsing
 
1 hour later…
23:40
Haha our repo has an ecin amount of stars
It's the funny xes number lol

« first day (757 days earlier)      last day (1018 days later) »