« first day (1601 days earlier)      last day (96 days later) » 

00:00
@Ginger inputs?
those are passed as a list all at once when execution starts
also, in the terminal doesn't sound like the best idea
because I oftentimes need to be able to easily fiddle with inputs when working on a golf
@lyxal (argv rather than STDIN)
yes, there's (probably) a read from STDIN element, but not even v2 website reads live STDIN
it's a well-known compromise (look at TIO for example, no live STDIN there)
00:23
@lyxal problem is, this new design doesn't really leave space for inputs
so I stuffed them into a dialog
dialog?
yeah
the new button in the top bar opens a dialog with the inputs in it
@lyxal this one does have, in theory, the ability to do that :p
@Ginger no I mean what's a dialog?
...........uh
the boxes that appear over other content
I think react-bootstrap calls them modals
Oh one of those
What does it look like on the site?
@Ginger I don't speak front end design very fluently :p
As far as I knew you'd put it into a prompt()
00:32
@lyxal just a moment, I gotta fire up webpack
00:49
Interesting
 
2 hours later…
02:59
@emanresuA ohhh so it doesn't need a new element
Nice
Idea, but tell me if this is inaccurate: from base and to base can be on the same thing
num, num would be to base
str|lst, num|str would be from base
Nah, you want the versatility
Realistically, the number of use cases where you'd from Base on the num, num case is small enough to justify needing the f to convert to iterable
@emanresuA but on the other hand, codepage space
They're both useful enough to justify two codepage slots
But the type overloading doesn't seem to have any conflicts
Apart from the number number case it looks like they can be successfully merged
Because only one overload of from base has number as lhs
The rest are all strings or lists
Basically if number is on rhs, to base
Everything else is from base
Wait no that's the wrong way around
Everything except num,num with num on lhs is to base
Otherwise, if lhs is string or list, from base
The only case which requires a compromise, as such, is num num on fromBase
Which is why I'm considering the idea
I might be wrong and missed some type combos
03:15
Vectorising is the main reason I'm reluctant to merge the two
Also type switching iirc
... never mind, but that could be a thing
@emanresuA it'd still vectorise
It's just that's no type switching
Not that there was any to begin with
Except on to base
List, list? And what I was suggesting was frombase vectorising as well based on depth
03:30
Ah right double list
Curse you double list situations where type overloading requires a forced language design choice
Two separate elements it is
You could get away with one builtin and force vectorising but a) it's kinda unintuitive b) you're losing a bit of flexibility for a distinction that doesn't really matter
Regardless of what you're doing 5% of your builtins are useless
@emanresuA no, I don't like having to force a choice for double lists
@emanresuA in the merged case or in general?
Just in general: there's no such thing as a perfect language, and you can't tell how useful something is without a lot of retrospective
03:50
I thought you meant 5% of my current 3.5 choices were useless :p
Which would be concerning :p
 
8 hours later…
11:52
@lyxal :3c
haven't started yet, but literally about to
verygood
oh incidentally one of the things I fixed with the redesign was the terminal not actually adjusting to screen height because something something CSS
so it does that now
so literate mode is possibly going to be more fun than sbcs
and by fun I mean "overlap problem prone"
my solution was a little cursed: since @xterm/addon-fit adjusts the terminal element to fit its parent, but the parent can't normally shrink to smaller than the size of its child, I had to use position: absolute to keep the parent from being affected by the size of the terminal
kw<term> { @specialize[@name={term}]<Identifier, term> }
That seems promising
11:58
apparently JS has a ResizeObserver API, which was quite useful for that
hey Ginger with the sbcs grammar, how are the different types of tokens differentiated in the output?
before colouring, but after lexing
@lyxal wdym? like what does the parser return?
yes
a tree of parse nodes, including named tokens
can I have an example data dump?
12:04
that gets fed into CodeMirror's syntax highlighter plugin and used by the autocomplete system
@lyxal funny thing, that: there's no (trivial) way to actually inspect the parse tree
it's mostly opaque, you have to write your own code to dump it
welp, guess we're doing this with trial and error
I'll get back to you when I have something to test
I can probably do that in a bit though
thanks for not sending that, network stack
chat's been being a little weird lately
at least for me
sometimes it'll drop messages, and takes a while to process when I've sent a reply
number ::= [number_real] "i" [number_real]
that's gonna be a tricky one
thanks chat for sending those pings again
NormalKW { $[a-zA-Z]$[a-zA-Z0-9\-?!*+=<>&%]*"n't"*}
Signs you've got a good programming language
esp when "n't"* is part of the rule for keywords
nothing is normal about these kws
12:33
no chance it works first try
wuaw
I bet 7 errors
one sec
Empty expression in choice operator. If this is intentional, use () to make it explicit. (.\vyxal-lit.grammar 61:0)
Fixed
Unexpected token '[' (.\vyxal-lit.grammar 112:56)
12:47
Ugh
Stupid lezer requiring dollar signs for ranges
Use normal regexes like everyone else, idiots
fixed
you sure? same error
112:56 is a -
not a [
maybe I'm stupid
yep
Reference to undefined rule 'StructureKW' (.\vyxal-lit.grammar 3:44)
fixed?
The first argument to 'specialize' must resolve to a token (.\vyxal-lit.grammar 3:44)
12:55
A token?!
but I don't have one
wow that's really inconvenient
we got lezed :(
probably fixed
no clue if it'll work
> FrickyYou
Reference to undefined rule 'Program' (.\vyxal-lit.grammar 8:61)
fixed
(both)
now for the fun stuff!
Unused rule 'ListStuff' (.\vyxal-lit.grammar 111:4)
shift/reduce conflict between
  Structure -> · StupidKWThingIHaveToUseBecauseFrickYouLezerMoreLikeWeezerButNotWeezerBecauseWeezerIsBetterThanLezer/"yes?"
and
  NumberDecimal -> "."
With input:
  "(" "." · StupidKWThingIHaveToUseBecauseFrickYouLezerMoreLikeWeezerButNotWeezerBecauseWeezerIsBetterThanLezer/"yes?" …
The reduction of NumberDecimal is allowed before StupidKWThingIHaveToUseBecauseFrickYouLezerMoreLikeWeezerButNotWeezerBecauseWeezerIsBetterThanLezer/"yes?" because of this rule:
13:01
I knew my actions would come back to haunt me
@Ginger time to test
portal 2 reference
Empty expression in choice operator. If this is intentional, use () to make it explicit. (.\vyxal-lit.grammar 86:0)
wooprs
fixed
shift/reduce conflict between
  Structure -> · WeirdKW/"yes?"
and
  NumberDecimal -> "."
With input:
  "(" "." · WeirdKW/"yes?" …
The reduction of NumberDecimal is allowed before WeirdKW/"yes?" because of this rule:
  (Word | Group)+ -> (Word | Group)+ · (Word | Group)+
Shared origin: (Word | Group)+ -> · Word
  via Word -> · Structure
    Structure -> · WeirdKW/"yes?"
  via Word -> · Number
    via Number -> · NumberDecimal
      NumberDecimal -> "." ·
oh
right yeah ok that's annoying
ugh
we love parsers!!!
13:09
Fixed
Lyxal fixed Vyxal!
Overlapping tokens WeirdKW and NormalKW used in same context (example: "A")
After:

Overlapping tokens WeirdKW and ModifierKW used in same context (example: "A" vs "A:")
After:

Overlapping tokens WeirdKW and Number used in same context (example: "i")
After:  (.\vyxal-lit.grammar 1:1)
I sure love how it doesn't report these issues when they exist
fixed, once again
Unexpected token '}' (.\vyxal-lit.grammar 105:69)
Fixed
13:13
counterpoint: CORS issues are frequently beyond your control, whereas Lezer is entirely your own fault :p
oop
it worked
we have a parser
now to plug it into the site
me when I don't know what highlight styles to assign to the parse nodes on account of I don't know vyxal
Why don’t you just have a person that sits in the office manually parsing and running the code?
well see that's what we used to do
but people complained, said it was "silly"
I disagree
Just give them the spec cheatsheet and give them money every so often. It’s that easy and practical.
@Ginger @lyxal help :3
lemme find a list of standard styles
be nice if it showed what colours each is
13:22
it can't, that's set by the theme
these are just semantics
Structure | controlKeyword
Branch | controlKeyword
Lambda | controlKeyword
String | string
Number | literal
NormalKW | keyword
ModifierKW | keyword
VariableThing | variableName
ListStuff | literal
GroupStuff | keyword
alright, one sec
ah oop comments
also: I don't like those headers for the editors, any ideas for a better design?
13:35
> where an issue where
oh that reminds me: the version backwards-compatibility file needs updating
the one on the theseus branch
oh
me when the fizzbuzz in the readme doesn't work
@Ginger theseus has one?
13:43
src/latest/data/compat.json
where is the code that does the redirecting?
because I think it can be simplified to not need the compat file
src/latest/scripts/util/permalink.ts
just needs a "redirect if earlier than" version
...on second thought just copy the file on main
right
whoops!
wait, 3.4.5??
what
permalinks generate 1 version in advance
so that when a redirect needs to happen, it redirects to the last known working version
also, don't show a modal
just redirect without telling the user
13:49
are comments fixed? (also thoughts on the editor headers?)
@Ginger yes, and they look fine
mkay
wait, I forgot about autocomplete and tooltips
...did literate ever have tooltips?
so how feasible would position info for errors be :3c
that's a question for user
right
let me fix the redirect
that was fast
I...found a somewhat important bug that needed fixing :p
@Ginger fixed
alrighty
I think we might be almost ready for a public release of the new interpreter maybe perhaps!
it's just missing tooltips for literate mode
I'm quite interested to see how well the webpack archive system works
maybe I should add a string compressor somehow
possibly as an editor shortcut to toggle the compression state of a string
15:15
what exactly does the less-than sign after map do?
I think the worker postMessage issue has come back to haunt me :|
15:31
suboptimal
 
6 hours later…
21:20
@lyxal you're not gonna believe this
I actually wrote a program
in vyxal
using theseus
(for a cmc in the discord)
also:
Vyxal 3 -s, 11 bytes: d2ẆḤ&#x27;.3×←tW Vyxal It Online!
> &#x27;
it's not supposed to do that
Thanks for the localhost link :p
what did you expect lol
 
2 hours later…
23:25
@Ginger multiplying by 3/10 and then rotating something isn't what I expected to see today :p
23:56
@lyxal indeed :p
ah wait no that's '. not .3×

« first day (1601 days earlier)      last day (96 days later) »