Seed. LINE's Custom Typeface
https://seed.line.me/index_en.html
#HackerNews #Seed #LINE #Custom #Typeface #design #typography #branding
#Tag
Seed. LINE's Custom Typeface
https://seed.line.me/index_en.html
#HackerNews #Seed #LINE #Custom #Typeface #design #typography #branding
Legacy news sources in #Japan aren’t doing their part in engaging younger audiences. I sat down with Japan Today to discuss why the new generation is turning to #TikTok clips and #Line updates instead of #mainstream #news.
#LINE は仕方なく使ってるけど、ずっと好きになれない 
Lets say we use type-checked Lua (possibly in a special mode), since that aids new parsing techniques. And allows us to reuse the scanner I designed for parsing Lua, inlining those routines. Wrapped in a routine to track line number & filename, which can be set via the #line directive.
Getting back to lexing... GLSL has similar lexing rules to C, except we don't have strings. Too high-level for GLSL!
That is we split the file into numbers, identifiers & keywords, symbols, & punctuation.
2/3!
Continuing my exploration of reimplementing GLSL for a risc32cfimv, the next step is to implement a lexer.
For starters: What would I implement it in?
If I'm saying that it'd be stored in a separate page of RAM without access to the Lua interpreter, that would suggest that we need this compiled to RISC-V Assembly. We could hand write this Assembly, or I've designed a stack-based mid-level language.
Or I suppose we could save the results from compiling some form of type-checked Lua!
1/3?
Lets say we use type-checked Lua (possibly in a special mode), since that aids new parsing techniques. And allows us to reuse the scanner I designed for parsing Lua, inlining those routines. Wrapped in a routine to track line number & filename, which can be set via the #line directive.
Getting back to lexing... GLSL has similar lexing rules to C, except we don't have strings. Too high-level for GLSL!
That is we split the file into numbers, identifiers & keywords, symbols, & punctuation.
2/3!
GLSL, OpenGL's standard language for programs ran on the GPU, includes what closely resembles C's preprocessor. So how'd we reimplement this for our risc32cfimv?
Incidentally GLSL specifically excludes #include, so (using the hardware I introduced the other day) we could run on this on a ROM-bank without filesystem routines. But #include sounds handy so I'm tempted to suggest that I'd implement it anyways!
In which case I'd love #line to be handled later, & even synthesize new ones.
1/?
#define would extract the identifier & parse the following optional argument list & body removing (escaped) newlines to load into a "macro" table.
Non-preprocessor lines would be scanned for these macros' identifiers to perform a find & replace, recursing to handle substitute in parameters.
2/3?
I'd track a stack of control-flow preprocessor lines tracking whether to keep or discard the lines between them, inserting #line where needed. This is how I'd handle #if, #elif, #else, #endif, #ifdef, #ifndef, #elifdef, #elifndef.
Some of these take identifiers whose presence it should check in the macros table, others would interpret infix expressions via a couple stacks & The Shunting Yard Algorithm. Or they simply end a control-flow block.
#undef removes an entry from the macros table.
3/4
#define would extract the identifier & parse the following optional argument list & body removing (escaped) newlines to load into a "macro" table.
Non-preprocessor lines would be scanned for these macros' identifiers to perform a find & replace, recursing to handle substitute in parameters.
2/3?
I'd track a stack of control-flow preprocessor lines tracking whether to keep or discard the lines between them, inserting #line where needed. This is how I'd handle #if, #elif, #else, #endif, #ifdef, #ifndef, #elifdef, #elifndef.
Some of these take identifiers whose presence it should check in the macros table, others would interpret infix expressions via a couple stacks & The Shunting Yard Algorithm. Or they simply end a control-flow block.
#undef removes an entry from the macros table.
3/4
#define would extract the identifier & parse the following optional argument list & body removing (escaped) newlines to load into a "macro" table.
Non-preprocessor lines would be scanned for these macros' identifiers to perform a find & replace, recursing to handle substitute in parameters.
2/3?
GLSL, OpenGL's standard language for programs ran on the GPU, includes what closely resembles C's preprocessor. So how'd we reimplement this for our risc32cfimv?
Incidentally GLSL specifically excludes #include, so (using the hardware I introduced the other day) we could run on this on a ROM-bank without filesystem routines. But #include sounds handy so I'm tempted to suggest that I'd implement it anyways!
In which case I'd love #line to be handled later, & even synthesize new ones.
1/?
Japanese mobile payment service provider PayPay has taken a step for its public listing in the United States, though the exact schedule, size and price for the public listing have yet to be determined. https://www.japantimes.co.jp/business/2025/08/16/companies/paypay-us-listing/?utm_medium=Social&utm_source=mastodon #business #companies #paypay #stocks #us #line #softbank
Tokyo police have arrested a Nepalese man and his father for allegedly pretending online to be baseball star Shohei Ohtani and swindling an elderly woman out of ¥1 million. https://www.japantimes.co.jp/news/2025/06/25/japan/crime-legal/fraudster-posing-as-ohtani-arrest/?utm_medium=Social&utm_source=mastodon #japan #crimelegal #fraud #facebook #line #japanesepolice #tokyo
A space for Bonfire maintainers and contributors to communicate