« first day (1026 days earlier)      last day (749 days later) » 

00:26
!!/status
Aw
Bot actually dead
@Ginger how easy is it to migrate a chat bot over to SE Chat?
Just as an estimate, not as something I'm saying to commit to doing
At least not yet
(cc @hyper-neutrino)
01:09
also @hyper-neutrino I've added keywords and tags for all non-digraph elements. Is that enough to get a preliminary element search working on vyxapedia?
01:27
oh boy time to dive into scala parser combinators again!
can't wait to see which recursion errors I get this time :p
@user how do I run individual files again?
because I have once again forgotten
vyxalJVM/testOnly *LexerTests
And vyxalJVM/testOnly *LexerTests -- -z "text" to only run tests with a particular piece of text (or maybe it's -t?)
but like a code file
not a test file
I think the documentation folder has it
Oh
Do you have like a main method in it?
if the bot was working, you'd know what I'm doing
one second
I want to run it interactively to test the methods
Uhh
Maybe test:console?
Or maybe just console
Gimme a sec, let me try it on my own computer first
My bad, it's vyxalJVM/Test/console
Just test:console/Test/console would run in the root project
Should we call the old lexer IlliterateLexer now? :P
01:48
okay so I have a main function in the file for testing how do I use it?
oh
If you're using the repl, I guess you don't really need a main function, but you can do LiterateLexer.main() ig
@lyxal There's also the runMain command (vyxalJVM/runMain vyxal.LiterateLexer, I think)
scala> LiterateLexer("{1 + { 4 - } map} map")
val res3: Either[vyxal.VyxalCompilationError, List[vyxal.LiterateToken]] = Right(List(LambdaBlock(1 + LambdaBlock(4 - )map), Word(map)))
Holy hell
it worked
It's working?
\o/
01:52
it needs a bit more tweaking to account for variable syntax
+ transliteration to sbcs
but that's the foundations ah frick lists
We could use plain [,] for those, right?
the idea is [|] still
I more mean I forgot about those
Right mb
Remind me to document this console thing sometime
I've basically never used a Scala REPL before (at least, not through sbt)
@lyxal When you get tired, I think it's :q to quit
Because you're sad
ctrl+c also works
That exits sbt, not just that console
01:59
wrong
It did for me, idk
I know that because I'm using ctrl+c to exit the console
Left(VyxalCompilationError(string matching regex '\]' expected but end of source found))
ah fun
Oh, I've been running it with sbt console, that's why
that would explain it lol
Btw, you don't need raw"""\[""".r, you can do raw"\[".r
The """ is only in case the string includes double quotes
Actually, I think you can just use "[" and "]" instead of using regex? idk
"|".r
That's your problem, I think
Just "|" should work
02:04
this was happening before I added "|".r
And """[^[\\]]+""".r can be """[^|[\\]]+""".r so that the |s can't be taken as list elements
Oh
What's the input you're giving it?
[3|4|6 7 add]
a sensible, well formed list
Does changing [^[\\]]+ to [^|[\\]]+ help?
no
Because this regex works (admittedly, not the same as that recursive parser)
02:07
that doesn't include the last ] in it's match though
unless it does
and the highlighting is jank
ah highlighting was jank
ye
If you put parens around the \] in the regex, the matched ]'ll be highlighted a different color
it doesn't include it in something like [3|4|6 7 add|[1|2|3]] though
I forgot to include [ in the [^] thing
And this is just plain regex, so it can't handle recursive lists
it doesn't like that middle regex for some reason
"[" ~ repsep(list | """[r]+""".r, "|") ~ "]" ^^ { case _ ~ body ~ _ =>
      ListToken(body.mkString("", "|", ""))
    }
that works if you just have something like [rrrr|rr|rrrr]
oh there we go
got it working
"[" ~ repsep(list | """[^\]\[|]+""".r, "|") ~ "]"
right. now to remember what I said literate mode variable syntax would look like
huh
guess I never documented it anywhere
excellent
I love forgetting things like this
$name for get, =name for set?
or how about :name for set?
"Hello" :greeting
"%, World!" $greeting strfmt println
compared to
"Hello" =greeting
"%, World!" $greeting strfmt println
I'mma ask about this in TNB
 
1 hour later…
03:50
scala> litLex(""" "Hello" =greeting "%, World!" $greeting mod print""")
val res2: String = "Hello" #=greeting "%, World!" #$greeting % ,
04:14
@user what's the point of "Lint with Scalafix / build (push)" if it doesn't automatically lint?
It just tells me there's something wrong without doing things for me
don't just fail, actually do stuff dang it
04:49
CI/CD moment
I really need to learn how to use that
feel like you've said thqt before
Jan 19 at 1:54, by hyper-neutrino
I should learn how to use github actions
somewhat similar
All the literate mode branch needs now is tests
And probably a few more keywords for a few things
Only took about 4 hours too
As I said, pretty simple job
oh
@lyxal lol
 
2 hours later…
07:21
@lyxal should be? I will have to implement that tomorrow or later sometime
07:38
Good
Also, I've been thinking and variable assignment in literate mode should be =:name or :=name
One of those two
The colon is necessary to avoid ambiguity over what's a word and a variable assignment
It's currently _name btw
op ::=name for augmented assignment maybe
:>=name could also be augmented assign
Maybe :> even
I think := for assignment and :> for augmented
I think after the literate mode stuff is done, a rudimentary online interpreter should be made. I think it'll be the last infrastructure thing before elementing
I think it's the right time for it now
Why not :op=
Because that would be hell to lex
Not necessarily
Most of your ops are either names or single / double unicode characters
It's not the name that's the issue it's the fact that it would require a bit of reworking of things because it wouldn't just be directly translatable to Unicode
07:51
op:=name requires no extra reordering
Because it's already in the syntax sbcs requires
It's also consistent with how the sbcs looks
 
1 hour later…
08:59
Also, :op= could be painful to lex because of cases like :{:op=}=
Because op isn't just keywords - it can be lambdas and modifiers
 
2 hours later…
11:26
#1590 - Literate mode for v3 is now ready for review
11:54
@lyxal you've asked the right person :p
well duh, that's why I asked! :p
if you use Python and sechat it's actually not that hard #notsponsored
12:09
is that similar to what sechat requires?
analyzing beep boop...
er, kinda
you could conceivably retrofit it to run on sechat, but I'd advise at least a partial rewrite (which I am more than happy to do :b)
@hyper-neutrino ^
in the meantime you can use OLIMAR to run vyxal code instead
if only it'd announce github events too :p
sure easy
/srs it wouldn't be very hard for me to make a bot that does the same things Vyxal Bot does
and I'm more than happy to do it q:
12:13
@Ginger create a branch on the repo to switch to sechat and we'll see what happens
sure
@Ginger I'd be more than happy for you to do so :p
nice
13:10
@Ginger #definetelynotbiased
*cough*
okay, time to do a little trolling beep boop rewriting
@lyxal do you mind if I put it in a new repo? I'm probably not going to use much of the original code besides the "I am doing x" files and such
13:29
:+1:
aight cool
@lyxal advance warning: I'm planning to create a GitHub App, which the bot will use instead of the current GitHub user account; is that OK?
frick, I can't create Apps in the Vyxal org because I'm not an admin
eh I'll do it later™
ok after inspecting the sechat code I think I need to make a few upgrades
frick my droplet isn't responding
14:16
send me sechat and I'll rewrite it later
15:06
> It works by basically transliterating words into their unicode equivalent, and running the resulting program as normal.
… what?
is that a flag or smth?
15:20
Also, what does String in the depth map (String, Int) stand for?
15:31
oooh, off-topic, but I kinda like the scala override keyword
definitely better than python's magic methods
16:10
how do those 2 have any relation to each other
I meant if you do something like override def toString and def __repr__()
16:25
well the only reason thats the way it is is because toString is defined on Any
 
4 hours later…
20:30
@lyxal Well I set it to only lint instead of also fixing. You can remove the --check and use the auto-commit action that's being used in the other workflow so it'll automatically fix some issues too
21:32
@mathcat it is
@user mergéd
22:01
@mathcat the variable name
Wow literate mode works on native
Passed the test suite first try
kachow
@Ginger I don't know whether to be happy or concerned that it worked so effortlessly :p
yeah that's a sign of a giant lurking bug somewhere
Or it could just be that scala native is doing its job well
I honestly don't know
Because it had issues with the normal lexer, but not the literate
@Ginger oh
That's a problem?
¯\_(ಠ_ಠ)_/¯
look, that's a Later Problem™
22:13
Try again
It should be fixed now
although this whole thing is kinda a Later Problem™, because I don't currently have a way to do any development on the bot
I can work on it once Radvylf fixes his server's UPS, which he said will only take a week or so
Well at least app creation isn't a problem anymore
I fixed that
yeah, by making me admin
you don't have to do that :p
Don't go abusing your powers now :p
@Ginger ah but you see, I do
Because I can
And it was inevitable anyway. If not now probably a few months down the track
???
but, like, the only thing giving me admin does is let me break things in new and exciting ways
22:16
Org ownership just means "yeah you look like a key developer who needs a few extra permissions for stuff + you fit in to the community well so here's a reward"
uh, alright I guess
I'll try not to touch any shiny red buttons :b
not sure I count as a "key developer" tho
If it makes you feel any better, there's 15 other org owners
hm, ok lol
 
1 hour later…
23:36
In today's epsiode of f*cking around with things that'll probably just cause pain, we'll be exploring github pages! :p
huh, looks like mill and sbt put the JS in different spots
that's fun

« first day (1026 days earlier)      last day (749 days later) »