« first day (4486 days earlier)      last day (652 days later) » 
00:00 - 15:0015:00 - 00:00

15:00
@Bbrk24 Toyota sienna 2015
@RydwolfPrograms some do
I don't actually write many libraries, mostly applications and they are normal GPL. I use LGPL for libraries
That's fine IMO ig. It's things like readline being GPL that makes me mad
Swift uses a modified version of the Apache license iirc
I think it’s fine to crash if the username is EOF, right? Like presumably the user wanted to abort in that case
If Ginger has been killed and imitated by an AI, does that make them AGInger?
15:17
ohhhhh baby I've got a race condition
:/
@Ginger rust go brr
FWIW I've had several race conditions in Rust
It's really easy to accidentally keep a mutex lock way longer than you thought you were/need to
And it's pretty annoying to figure out where that happened
15:36
@RydwolfPrograms I think that’s a deadlock, no?
Tho I agree, I have to drop a lock manually in lightchat
I rather like how the memory system applies cleanly to resources
You're not making a chatbot library in Rust are you
too bad this can’t be done for other langs
@RydwolfPrograms no
15:37
lightchat, my chat client, is in rust
ive had to pretty much copy sechat into rust
You know I've already done that right
NPSP's in Rust
While it's kind of cluttered and mixed with unrelated code, the chat handling is very robust and overengineered
aaaaaaaaaaaa
But it’s integrated into npsp, not a standalone lib
Yeah, but you could probably have just copied and pasted a lot of it instead of having to reverse engineer sechat :p
But then I would have to follow the mit license
while ginger game me the code with no conditions
What does that even mean
Just take the code and put it in your code lol
If the MIT license actually requires you to do anything, nobody actually does that thing
15:41
And I have to copy your mit license into my projects too
?????
No you don't
That's just GPL
MIT is the second clearest way to communicate "do whatever you want with my code"
Not as in I have to license my project as mit, just I have to display your license in my project too
I don't think that's the case, but to alleviate any concerns, I hereby give you permission to use my code without attribution or the inclusion of any stuff in your license file
Too late :P
I've also been casually working on a true library
But it's not a high priority
15:46
@Seggan Deadlock can be a kind of race condition
A race condition may cause a deadlock but not every deadlock is caused by a race condition
16:04
You know what license we didn’t mention earlier
the WTFPL
> The license was confirmed as a GPL-compatible free software license by the Free Software Foundation, but its use is "not recommended".
2
hmm wait
is there an ANSI formatting code for strikethrough?
I don't think so
Oh yes there is
code 9
But support is very limited
I’m going to have to roll my own pseudo-NSAttributedString aren’t I
yeah it seems to only be (fully) supported on Apple platforms
I don’t know how NSAttributedString works underlyingly but storing a [Range<String.Index>: Set<Attribute>] seems like the most straightforward way to back it
actually I may need to implement a custom collection type because I’ll want the ranges in order, not ordered by their hashes
Ah no, swift-collections has an OrderedDictionary type, good
oh no that’s specified order not sorted order
16:29
I'm enjoying hearing you suffer
17:01
@Bbrk24 what about the MPL?
@Bbrk24 I thought you said you don’t have a mac
@Neil I did mention that though
@Seggan Hence why I’m writing a TUI. Swift is supported for Linux, there’s just no graphics libraries because Swift on Linux is almost exclusively for server-side code
swift-collections, though maintained by Apple, is a cross-platform library
…if I want to support keyboard shortcuts, I’ll end up knee-deep in ioctls, won’t I
@Bbrk24 heh, we’re all doing tuis today
@RydwolfPrograms on that note, mind quickly scanning my code and making sure I’m not blundering anywhere
I wrote a SIMD function to filter out nonfinite values the other day and even though it only ended up being like three lines of code I still feel good about having written it
ugh
I'm going to have to rewrite a bunch of code because my jank has come back to bite me in the ass
17:15
@Bbrk24 what’s smid
SIMD = Single Instruction Multiple Data
It's a set of instruction on a CPU that let you do multiple operations for the price of one in some specific situations, which makes it fast
single instruction, multiple data. By having large (256- or 512-bit) registers you can effectively do parallel processing on a single core
very common in graphics code, iinm
I’ve also seen a library that uses SIMD to validate UTF-8 in less than one instruction per byte
private static readonly Vector<long> _isFiniteMask = new(Enumerable.Repeat(0x7ff0_0000_0000_0000L, Vector<long>.Count).ToArray());

internal static Vector<double> MaskNonFinites(Vector<double> source)
{
  Vector<long> asIntegers = (Vector<long>)source;
  Vector<long> conds = Vector.Equals(_isFiniteMask, asIntegers & _isFiniteMask);
  return Vector.ConditionalSelect(conds, Vector<double>.Zero, source);
}
17:31
@Seggan That repo is private FYI. If you shared it with Rydwolf and make it private on purpose ignore htis message
no, he just spelled his name wrong
> Seaggn
4
I'm seaggn right now
I feel seaggn could be the new poggn
17:51
sketched some example code out a bit: https://gist.github.com/bigyihsuan/8c8fd82cc0809e4e6a4fadb3d622404f

the `l :? T` is the "is `l` an instance of `T` or a child class of `T`" operator
It's going to be statically typed?
@user maybe yes maybe no, too early in planning for that
like
I personally would make it dynamically typed to make life easier
fields in class definitions need to know what type it is
And interpreted
If you make it statically typed and don't add generics, then you'll need to add casting and stuff
17:53
otherwise you have things like class Foo {bar,baz,quuz} and you don't really know what types that is
That's fine
This is a cursed esolang
mhm
designed to be terrible
(and languages like Python and Ruby don't force you to make the fields a certain type either even though they're supposedly "practical")
yeah...
i may go that route
but it'll be a headache when implementing the backend lol
(or make type annotations optional)
@bigyihsuan I feel like it'd be significantly easier to make an interpreter than to make a compiler
Type checking is quite hard
17:57
it was gonna be interpreted anyway because i dunno how to make a compiler haha
Yeah then dynamically typed will be much easier than statically typed
Well there won't be any "static" if you're interpreting anyway
(is it possible to have a statically typed, interpreted language?)
like i wanna use rust because i found a bunch of crates that really simplify making the frontend
Frontend as in GUI? I thought Rust didn't have too many crates for that
What crates did you find? I wanna start a Rust project of my own
I think they mean the interpreter frontend
Oh
17:59
yea
Like CLI?
lexing and parsing
Ohhh
(i also found a nice argument parser crate and i'm using that as well)
43
Q: Which languages are dynamically typed and compiled (and which are statically typed and interpreted)?

SkilldrickIn my reading on dynamic and static typing, I keep coming up against the assumption that statically typed languages are compiled, while dynamically typed languages are interpreted. I know that in general this is true, but I'm interested in the exceptions. I'd really like someone to not only give...

Thanks
18:18
@mousetail yeah I spelled it wrong
@user can confirm
@bigyihsuan kotlin + antlr
rewrite finished
let's see if it works
narrator: it did not work
okay, it's drawing things now
progress!
18:33
@Bbrk24 hmm, well, I guess you did mention it, but nobody seemed to discuss it
at least it's something
Why is the name of PLDI server so long :angry:
Forgetting that you bought donuts last night and finding them in your backpack while getting ready for school is the best feeling ever
^[[<35;23;30M^[[<35;23;31M^[[<35;23;32M^[[<35;24;32M^[[<35;24;33M^[[<35;25;33M^[[<35;26;34M^[[<35;26;35MTraceback (most recent call last):
  File "/home/ginger/.cache/pypoetry/virtualenvs/crosstalk-V9V4K-Ek-py3.11/lib/python3.11/site-packages/textual/message_pump.py", line 490, in _process_messages_loop
    await self._dispatch_message(message)
  File "/home/ginger/.cache/pypoetry/virtualenvs/crosstalk-V9V4K-Ek-py3.11/lib/python3.11/site-packages/textual/message_pump.py", line 544, in _dispatch_message
I've really gone and done it this time
Yikes
That doesn't look like a fun error
18:45
Most of those lines seem inside the library
I yielded a str instead of a Segment and all hell broke loose
good thing it was an easy fix
^[[<35;60;25M^[[<35;57;26M^[[<35;54;27M^[[<35;51;28M^[[<35;47;29M^[[<35;45;30M^[[<35;43;31M^[[<35;40;32MTraceback (most recent call last):
  File "/home/ginger/.cache/pypoetry/virtualenvs/crosstalk-V9V4K-Ek-py3.11/lib/python3.11/site-packages/textual/message_pump.py", line 490, in _process_messages_loop
    await self._dispatch_message(message)
  File "/home/ginger/.cache/pypoetry/virtualenvs/crosstalk-V9V4K-Ek-py3.11/lib/python3.11/site-packages/textual/message_pump.py", line 544, in _dispatch_message
yeah apparently if you do anything even slightly weird during rendering it shits its pants and spontaneously combusts
👍
That's the disadvantage of dynamic typing
things can almost work for long enough that the source is hard to find
I feel like error handling is the least appreciated of the hard little things to get right, whether in language design (looking at you Rust), libraries (looking at myself), etc.
For sure, I already found that for some reason when joining a room you don't have access to I don't get a 403 status code but just have to parse the text to find out
uggggggh
my janky code isn't working
19:09
@RydwolfPrograms I really like how Swift syntactically handles throw/try, but I wish it could be better-typed like in Java
Rather than a try block, you have a do block where the individual expressions that can throw are marked try
It’s also super easy to convert between a throwing function and one that returns a Result
(one way you have the get() method, and the other way you have init(catching:))
AHA
I had two off by one errors :/
Off by 2 error?
no, two different off by one errors
An ooffff bbyy oonnee eerrrroorr
@mousetail a deal breaking one for me
19:25
oh boy I found another one
there are two sure things in software development: off by one errors
19:44
progress!
SAUCE
S A U C E
𝒮 𝒜 𝒰 𝒞 ℰ
20:04
𝕾𝕬𝖀𝕮𝕰
20:14
well, after about half an hour of shoving + 1 into various parts of my code, I have ended up with this:
not bad, eh?
21:00
I’d say so if you weren’t so far ahead of me
now now, be a good sport
I did license sechat's code to you :p
21:13
27
Q: We're regenerating all identicons

Cesar MWe've recently discovered a vulnerability in our identicon generation process. To remedy it, we have changed how we approach generating them and regenerated all identicons. We do not have any indication that any personally identifiable information (PII) was leaked as part of this vulnerability. S...

Depending on how work goes next week, I may end up making raw malloc and free calls from C#
ಠ_ಠ
C++ code may need to resize a buffer than a C# caller is giving it, but you can’t realloc a C# array
—-
there’s a chance I’m getting way ahead of myself, but if I wanted to use e.g. ctrl-I and ctrl-K to switch between chat rooms, how would I listen for that?
I know Ctrl-<letter> is possible to listen for because nano uses ^O for “save”
21:32
I wouldn't know, Textual handles all that for me
@Bbrk24 c#? I though u were using swift
C# at work, Swift for personal stuff
Ah
@Ginger yeah crossterm handles that for me too
I have decided I’m doing all the rendering myself which means I will end up knee-deep in ioctls
Unless there’s a C framework I can use in which case I’ll gladly take it
but I haven’t looked for one
21:50
Oooof
Would c++ do
Maybe
Swift-C++ interop is far from complete but some things work
Like they only just added correct handling of virtual methods
@Bbrk24 Have you tried (n)curses
I’ll look into it
@DarrenSmith One thing you might want to do is go to the access tab and add another user as a room owner, so they can moderate the room in your absence if necessary.
iirc ncurses is part of standard linux
21:55
the annoying thing is going to be that anything that uses function pointers is going to be marginally compatible with swift closures
@DarrenSmith I'm there with you. Part of the reason I've never quite learned popular languages like Jelly and Vyxal is there are just so many builtins.
I wonder how well Guilia would perform
*Gulia
@Seggan I've been hanging out in chat too much... I thought that was going to say dankamogusmemes
@cairdcoinheringaahing ugh, but thanks
I’ll probably also have to install ncurses as a git submodule because of how SwiftPM works
But, one thing at a time. Let’s see if I can get login to work
22:11
@DarrenSmith The Tarpit is a room specifically for esolangs and esolang development, although it's been frozen for a while due to inactivity.
@RydwolfPrograms that's what I like about MIT. it's short, simple, lets people do whatever they want without having to spend time fussing over whether they're allowed to do so and still makes me no longer liable if my code fricks up their stuff :p
Besides, all the cool language designers use mit :p
that’s a bold take considering Rust is Apache
I mean golfing language designers
Charcoal, Jelly, 05ab1e, Vyxal, Nibbles, Cjam, SOGL and MATL
Basically a good portion of all of the biggest golfing languages ever
(languages like husk, stax and japt didn't have licences, so definitely none of this gpl stuff)
22:59
@lyxal You forgot Pip :P
@DLosc sheet I'm sorry
Ayo that makes you one of the cool kid golflang makers though :p
@DLosc that's what I like about MIT - it gives you the benefit of a licence and doesn't cause trouble for other people
00:00 - 15:0015:00 - 00:00

« first day (4486 days earlier)      last day (652 days later) »