<< 28-12-2023 >>

00:00:45*Lord_Nightmare joined #nim
00:01:52*mal`` joined #nim
00:17:25FromDiscord<Phil> In reply to @can.l "I usually recommend having": Makes me want to have an "Architecture Pattern" section in the nimibook docs or something
00:18:00FromDiscord<can.l> Yeah, good point.
00:18:29FromDiscord<can.l> In reply to @isofruit "Makes me want to": I thought about having a `Guides` section
00:18:31FromDiscord<Phil> And owlkettle-crud example exists?
00:18:38FromDiscord<Phil> Is that linked to anywhere?
00:18:48FromDiscord<can.l> I don't think so.
00:18:49FromDiscord<Phil> And is there more like it?
00:19:26FromDiscord<can.l> I don't think so.
00:19:36FromDiscord<can.l> Unless you consider the Graphing app an example
00:19:54FromDiscord<can.l> Its not an "official example" as its not as regularly tested against new owlkettle versions
00:19:58FromDiscord<Phil> I would not as that sounded more like a starting point for an actual application
00:20:34FromDiscord<Phil> In reply to @can.l "I thought about having": I'll make an issue.↵Any other patterns you can think of, off the top of your head?
00:22:58FromDiscord<can.l> The idea for the "Guides" section was not just to include patterns, but also things like "How to publish a flatpak app", "How to do async", "Cross Compiling for Windows" ...
00:23:21FromDiscord<can.l> (edit) "async"," => "async" (I guess that would be a pattern),"
00:23:57FromDiscord<Phil> Hmm in that case subsection for guides?↵"Architecture Guides"↵"Build Guides" etc.?
00:24:21FromDiscord<can.l> Not sure if we will ever have that many xD
00:24:46FromDiscord<can.l> But generally yes
00:24:52FromDiscord<can.l> (edit) "generally" => "generally,"
00:25:17FromDiscord<Phil> Fair, for now I guess until we start having more than 1 of each it makes sense to just dump them all under the guides banner
00:26:32FromDiscord<can.l> I think regarding publishing, sb would have to gain some experience on how to do that first
00:27:56FromDiscord<Phil> Absolutely, I added that to the issue mainly to establish the idea of what all could go in there
00:28:20FromDiscord<Phil> But one thing after another, first thing for me is getting us closer to 100% functionality wrap
00:28:35FromDiscord<Phil> And to be able to have an answer for every multithreading problem apparently
00:29:00FromDiscord<can.l> There should probably also be a guide for multithreading
00:29:55FromDiscord<Phil> Yes, the question is that basically the only multithreading pattern you can do right now is threadpool with one-off tasks
00:31:06FromDiscord<Phil> ThreadButler will provide another option, but that is provided that is even desired
00:31:59FromDiscord<can.l> Well it supports owlkettle out of the box, so it would make sense to add it to the docs if you want that.
00:36:23FromDiscord<Phil> Fair, I'd see about that once I've gotten around to stabilizing the API and written tests
00:36:23FromDiscord<Phil> I'm still not too sure about the API for tasks (for owlkettle not too relevant since there you'd use the GTK API anyway that is provided)
00:56:37FromDiscord<user2m> In reply to @nasuray "https://github.com/enthus1ast/illwillWidgets might ": Yeah I found those too! this is just what i was looking for
00:56:42FromDiscord<albassort> i need a cyclical visualizer
00:56:45FromDiscord<albassort> like a circuit
00:56:59FromDiscord<albassort> (edit) "like a circuit ... " added "kinda thing"
00:57:08FromDiscord<albassort> does anyone know of such a device
00:57:47FromDiscord<albassort> eh nvm i gotta figure out how the fuck quadratic equations work first
00:58:02FromDiscord<albassort> (edit) "eh nvm i gotta figure out how the fuck ... quadraticworks" added "writing" | "work" => "works"
01:19:37FromDiscord<Robyn [She/Her]> In reply to @albassort "like a circuit kinda": Aah there was something for this, hold on-
01:20:55FromDiscord<albassort> like im making wheat, which draws nitrogen from soil and puts stuff in
01:21:16FromDiscord<albassort> i need to visualize this to design the cycle better and so i spend less time staring at my breakpoints going "why is this negative"
01:21:24FromDiscord<albassort> im sure everyone can relate to some extent
03:50:56FromDiscord<Robyn [She/Her]> Oh nvm then, don't have something for that-
03:51:30FromDiscord<Robyn [She/Her]> In reply to @albassort "i need to visualize": Though, would a diagram using something like mermaidjs do the trick?
03:51:40*derpydoo quit (Read error: Connection reset by peer)
05:08:40*redj quit (Ping timeout: 268 seconds)
05:10:43*mikess joined #nim
05:31:53FromDiscord<jerrythegenius> I'm learning nim and I need help with some of my code. Which channel should I ask in?
05:32:17FromDiscord<Elegantbeef> Here but you used your 1 annual question
05:33:33FromDiscord<Elegantbeef> What's your problem?
05:38:46*redj joined #nim
05:41:45FromDiscord<Elegantbeef> Damn I guess I scared them away
05:42:11FromDiscord<jerrythegenius> nah I had to do something
05:42:48FromDiscord<jerrythegenius> so im trying to make a guessing game but the answer is always 2
05:43:06FromDiscord<jerrythegenius> sent a long message, see <!doctype html>
05:43:12FromDiscord<Elegantbeef> I could never guess it
05:43:25FromDiscord<Elegantbeef> Three \` before and after the code
05:43:29FromDiscord<Elegantbeef> And nim on the first line
05:43:34FromDiscord<jerrythegenius> ok
05:44:11FromDiscord<jerrythegenius> (edit) "long message," => "code paste," | "<!doctype html> <html lang=en> <head> <meta charset=utf-8> <title>&nbsp;</title> </head> <style> body { font-family: monospace; margin: 2em; } </style> <body> <p>ix.io is taking a break &#127867;</p> <img src="/underconstruction.gif" width="200px"> </body> </html>" => "https://play.nim-lang.org/#ix=html>"
05:44:22FromDiscord<Elegantbeef> Ok good enough
05:44:31*redj quit (Ping timeout: 245 seconds)
05:44:32FromDiscord<Elegantbeef> What's your question?
05:44:37FromDiscord<Elegantbeef> Oh your issue is it's always `2`
05:44:41FromDiscord<jerrythegenius> (edit)
05:44:47FromDiscord<jerrythegenius> yeah
05:44:49FromDiscord<Elegantbeef> I see you did not call `randomize`
05:45:23FromDiscord<jerrythegenius> add `import std/randomize` to the start of the code?
05:45:27FromDiscord<Elegantbeef> You're using the global random object which is deterministically initialised `randomize()` will seed it differently
05:45:29FromDiscord<Elegantbeef> No
05:45:33FromDiscord<Elegantbeef> Just call `randomize()`
05:45:40FromDiscord<Elegantbeef> https://nim-lang.org/docs/random.html#randomize
05:51:21FromDiscord<jerrythegenius> it works now
05:53:14FromDiscord<jerrythegenius> thanks!
06:52:42*azimut joined #nim
07:42:26*PMunch joined #nim
07:57:52PMunchHmm, anyone have a good way to debug binary blobs for microcontrollers? I have a sample project for the board I'm working on, and it works fine. Now I've written something in Nim which should do the same thing, and I've built a version of that as well. But it doesn't work and I have no idea why..
08:00:32FromDiscord<leorize> do you have any serial out?
08:01:52FromDiscord<leorize> if you don't have I/O then maybe comparing the binaries could help
08:02:49PMunchI do have serial out, and I can read it when running the good firmware
08:03:00PMunchBut the non-working firmware doesn't print anything
08:03:17PMunchLet me quickly whip up a "blink LED" thing and see if that works
08:08:03PMunchNope, not even that works..
08:10:15PMunchI mean I could compare the binaries, I just don't know how..
08:12:22FromDiscord<nnsee> is emulation an option
08:12:54FromDiscord<nnsee> that way you have a complete overview of the program flow and registers and everything
08:14:55PMunchHmm, not quite sure
08:15:40PMunchI mean I could maybe emulate the chip, but not the rest of the board
08:15:45FromDiscord<leorize> make sure the layout resembles the working ones, basically↵(<@709044657232936960_=50=4dunch=5b=49=52=43=5d>)
08:16:42FromDiscord<leorize> objdump probably works to give you a run down of what's in the binary
08:18:22FromDiscord<blackmius> sent a long message, see <!doctype html>
08:19:28FromDiscord<blackmius> (edit)
08:20:03FromDiscord<blackmius> (edit)
08:20:15FromDiscord<leorize> make sure you're using atomicArc to start
08:21:34FromDiscord<leorize> the strings and seq within a ref is owned by that ref
08:21:43FromDiscord<leorize> so as long as that ref is alive, all is good
08:22:24FromDiscord<leorize> for data movement you should use a channel implementation, but I don't know of any good ones for nim atm
08:24:32FromDiscord<leorize> one problem you'd have is synchronization
08:25:44FromDiscord<leorize> if that ref contains a seq in T1 and you modify that seq, the changes might not be reflected by the same ref in T2 until the CPU decided to flush the caches
08:26:10FromDiscord<leorize> for this case you would want a single owner model over a multi-owner model
08:26:22FromDiscord<leorize> or just add a lock
08:31:09FromDiscord<blackmius> hmm, good point. I think future's state cannot be processed by multiple threads at once. so it can be lockless until threads dont share global memory
08:32:18PMunchHmm, interesting. Managed to get GDB running via the JLink and when stepping through the program the blinky thing works
08:32:42FromDiscord<blackmius> the problem is with proper passing future continuation with its procEnv and all stuff and then be sure in safety that things allocated in thread wont be cleared after use
08:33:08FromDiscord<nnsee> In reply to @PMunch "Hmm, interesting. Managed to": if you just c, and not just step, does it work too?
08:33:35FromDiscord<leorize> I'd just shill for cps in this case
08:33:39FromDiscord<blackmius> (edit) "use" => "task is done"
08:34:04FromDiscord<blackmius> cps is splitting procs too much
08:34:05PMunchnnsee, yes continue seems to work as well
08:34:20PMunchProbably just didn't reset it properly when I flashed the blinker code last time
08:34:40FromDiscord<nnsee> depending on how gdb works on that platform it might accidentally be bootstrapping the binary correctly vs running it directly
08:34:51FromDiscord<nnsee> oh
08:34:51PMunchHmm
08:34:54FromDiscord<nnsee> or that
08:35:07PMunchYeah, now when I just give the board power it blinks the LED
08:35:16FromDiscord<blackmius> i want proc to be splitted only by await or yield statement not every if and inner loop
08:35:45FromDiscord<leorize> could it also be broken init code? in case gdb injected it's own
08:35:47FromDiscord<leorize> wdym?↵(@blackmius)
08:35:53FromDiscord<leorize> well it's true that there are potential in lining spots here and there, but nothing significant enough that actually showed up in our profiles
08:36:27FromDiscord<leorize> that's what cps does? it shouldn't split when not required
08:38:35FromDiscord<blackmius> cps split each if statements and each inner loops cycle i mean the implementation https://github.com/nim-works/cps
08:39:02FromDiscord<leorize> it shouldn't, we don't preenpt
08:39:11FromDiscord<leorize> preempt\
08:39:47FromDiscord<blackmius> sent a code paste, see https://play.nim-lang.org/#ix=html>
08:39:59FromDiscord<leorize> it doesn't do that
08:40:34FromDiscord<leorize> it only does so if your loop have a statement requiring splits
08:40:58FromDiscord<leorize> and in fact it can't split that particular loop because the current implementation can't split for loops
08:43:20FromDiscord<blackmius> hmm, strange i need to double check. last time i play with cps i think i found this behaviour and think its not good
08:43:32FromDiscord<blackmius> (edit) "play" => "played"
08:44:05FromDiscord<leorize> the only implementation that does so is the ancient untyped version that doesn't run on current nim nor is able to run well at all
08:45:03FromDiscord<leorize> if you use cps then zevv's actors and disruptek insideout have cross-thread communication
10:02:28*mikess quit (Ping timeout: 276 seconds)
10:20:32*azimut quit (Remote host closed the connection)
10:21:00*azimut joined #nim
10:22:42FromDiscord<nnsee> In reply to @PMunch "Yeah, now when I": is the gdb stub/loader/whatever written to the flash or
10:22:52FromDiscord<nnsee> i have no idea how gdb works for microcontrollers
10:23:44FromDiscord<nnsee> i've only worked with porting the stub to devices that actually have the concept of, well, executables
10:31:26PMunchnnsee, no idea TBH
10:31:41PMunchI think it's just the JLink device which is aware of GDB
10:31:45*PMunch quit (Quit: Leaving)
11:46:38FromDiscord<saint.___.> Does anybody really understand how this HappyX framework works
11:46:45FromDiscord<saint.___.> https://github.com/HapticX/happyx
11:47:02FromDiscord<saint.___.> I don't get how he writes the front end, it's like js output of nim?
11:47:27FromDiscord<saint.___.> Are there like some more involved examples or stuff on nim js output, like dom manipulation and stuff
11:47:41FromDiscord<saint.___.> Are there limitations of what you can do?
12:12:58FromDiscord<Phil> In reply to @saint.___. "https://github.com/HapticX/happyx": It's karax as frontend. Basically you can ask hotdog what is possible and what not
12:14:07FromDiscord<Phil> And yeah, 2 separate compilations, one to js for frontend, one to binary for backend
13:00:55*azimut quit (Ping timeout: 240 seconds)
13:51:17*derpydoo joined #nim
13:54:38*lucasta joined #nim
14:17:01FromDiscord<Phil> Is there any source one would specifically recommend for getting advice for DSL design?
14:18:01*azimut joined #nim
14:53:11FromDiscord<pmunch> Not sure there is a lot of resources on that topic
14:53:19FromDiscord<saint.___.> In reply to @isofruit "It's karax as frontend.": Interesting, but how does it not requre karax
14:53:21FromDiscord<saint.___.> https://github.com/HapticX/happyx/blob/master/happyx.nimble
15:01:25FromDiscord<nnsee> i don't think it actually _uses_ karax, it's a custom implementation
15:44:36FromDiscord<saint.___.> Right
15:45:02FromDiscord<saint.___.> Seems hard to figure out how to use it then
15:48:26*mjensen joined #nim
15:48:26*mjensen quit (Client Quit)
16:08:44*lucasta quit (Quit: Leaving)
16:33:10*mikess joined #nim
16:36:31*azimut quit (Ping timeout: 240 seconds)
16:36:48NimEventerNew thread by jasonfi: Nexus v2.0.0 available, see https://forum.nim-lang.org/t/10811
16:42:58FromDiscord<redmechanics> i am using the net module and i have a client that sends data to the server but the server only receives it when the client socket is closed. is there any way to make the server receive it even when the client socket is open ?
16:55:58*junaid_ joined #nim
16:59:21FromDiscord<graveflo> In reply to @redmechanics "i am using the": shouldn't happen. Do you have a minimum example?
16:59:48FromDiscord<griffith1deadly> In reply to @redmechanics "i am using the": i think it related to that you wanna receive from client all data when buffer not full
17:00:25FromDiscord<graveflo> yea that kind of thing is almost always a buffer issue and probably server-side like you said
17:00:49FromDiscord<redmechanics> In reply to @griffith1deadly "i think it related": oh maybe because in recv i set buffer size to 4096 bytes
17:01:00FromDiscord<griffith1deadly> In reply to @redmechanics "oh maybe because in": it problem
17:01:15FromDiscord<griffith1deadly> you need operate with sockets like data stream
17:01:36FromDiscord<redmechanics> how do i set the size to the correct amount ?
17:01:50FromDiscord<graveflo> some `recv` functions to not fill the buffer to size! It is a maximum in some cases
17:01:52Amun-Rayou have to know when to stop reading
17:01:55FromDiscord<griffith1deadly> client need send first message len, then message ↵server read message len like int, and then recv with it size
17:01:59FromDiscord<graveflo> we need to know which functions you are using
17:02:10FromDiscord<graveflo> (edit) "to" => "do"
17:02:21FromDiscord<griffith1deadly> (edit) "size" => "len"
17:03:18FromDiscord<redmechanics> sent a code paste, see https://play.nim-lang.org/#ix=html>
17:04:07FromDiscord<griffith1deadly> In reply to @griffith1deadly "client need send first": as i said
17:04:36FromDiscord<graveflo> or use UDP
17:04:53FromDiscord<griffith1deadly> netty library as example for it
17:08:40Amun-Raredmechanics: can you paste the code somewhere online?
17:10:42FromDiscord<redmechanics> In reply to @griffith1deadly "client need send first": but here you need to know the length of the message length to receive that message length
17:11:17FromDiscord<graveflo> the length is prob going to be a fixed size int, right?
17:11:54FromDiscord<griffith1deadly> In reply to @redmechanics "but here you need": just write to socket msg.len
17:12:10FromDiscord<griffith1deadly> and in server code first read len
17:14:39FromDiscord<griffith1deadly> In reply to @griffith1deadly "and in server code": you can read message len like recv, but size should be sizeof(len type)
17:14:55*jmdaemon quit (Ping timeout: 260 seconds)
17:15:57*junaid_ quit (Remote host closed the connection)
17:25:45FromDiscord<graveflo> sent a code paste, see https://play.nim-lang.org/#ix=html>
17:26:09FromDiscord<graveflo> or you can use UDP instead. These are pretty much your 3 options
17:26:49FromDiscord<graveflo> (edit)
17:45:35*azimut joined #nim
18:01:56FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=html>
18:02:05FromDiscord<Phil> (edit)
18:02:14FromDiscord<Phil> (edit)
18:03:09FromDiscord<Phil> (edit)
18:05:55FromDiscord<Phil> sent a long message, see <!doctype html>
18:08:40*azimut_ joined #nim
18:09:43*azimut quit (Ping timeout: 240 seconds)
18:23:34FromDiscord<leorize> @Phil)
18:59:33*azimut_ quit (Remote host closed the connection)
19:02:11*azimut joined #nim
19:13:51FromDiscord<pptx704> Theoretically speaking, can I compile part of an application to js and part of it in C? As in, I run a website that calls my c functions (since that's faster) or something like that?
19:15:29FromDiscord<Phil> I mean, depends, not from the browser. If you're talking through node, you'd need to explore if it allows calling into C from that runtime, and how.
19:15:56FromDiscord<Phil> Or rather if it allows calling into binaries, not into C
19:16:10FromDiscord<graveflo> this is just the first hit on google. idk anything about it: https://github.com/node-ffi/node-ffi
19:17:04FromDiscord<graveflo> I'm sure nim does not have a way to do this built in or anything. It's either the there isn't a hybrid backend for js and c at the same time
19:17:19FromDiscord<graveflo> (edit) "It's either the there" => "There"
19:20:16FromDiscord<Robyn [She/Her]> In reply to @pptx704 "Theoretically speaking, can I": You'd have to rig something together to do that for you, but it may be possible
19:21:19*azimut quit (Ping timeout: 240 seconds)
19:21:27*azimut_ joined #nim
19:28:48*mikess left #nim (#nim)
19:34:26FromDiscord<.bobbbob> I seem to have found a bug with unicode.strip where if the angry emoji 😠 is at the end of the line it breaks it gets corrupted, 😠 is f09f98a0 in hex but the strip function seems to be getting rid of the a0 for some reason. looking at unicodeSpaces that split uses, it has 0x000A0 as a space but I dont see why its seeing the emoji as not a single rune, anyone have any experience with this?
19:34:39FromDiscord<.bobbbob> (edit) removed "it breaks"
20:02:18FromDiscord<.bobbbob> sent a code paste, see https://play.nim-lang.org/#ix=html>
20:03:40FromDiscord<pptx704> In reply to @graveflo "this is just the": looks cool
20:11:44FromDiscord<graveflo> In reply to @.bobbbob "I made my own": you are going to make a copy unless you are overwriting the input character buffer. If you want to overwrite the input character buffer you want to use a `var` parameter and you probably want to make it only `trailing` for simplicity. Probably don't want to use `openArray` in this case aswell but I'm not 100% sure on that
20:24:03FromDiscord<.bobbbob> In reply to @graveflo "you are going to": well I want a copy, and the stdlib one also allocates a new string so I guess it's fine
21:01:47*junaid_ joined #nim
21:04:37*junaid_ quit (Remote host closed the connection)
21:25:45*LuxuryMode joined #nim
21:27:57LuxuryModeI'm initializing a table inside of my object declaration and adding a bunch of key/values to it. Yet, somehow, the table appears to be empty which echoing and checking `hasKey` confirms. I think I must be missing something basic here. Any ideas on where I'm going wrong? http://pastie.org/p/3cDhXw70KPJ8lubaYjksNn
21:29:46LuxuryModeCan I not initialize such types inside the object declaration and instead do it in my `initScanner`?
21:30:42LuxuryModehrm..ok that appears to be the case.
21:31:37LuxuryModesimple types, such as integer, bools, etc can be initialized but not others?
21:33:16FromDiscord<Elegantbeef> Is this supposed to be dynamic?
21:33:26FromDiscord<Elegantbeef> Like are you going to add keywords at runtime?
21:37:38*junaid_ joined #nim
21:44:55*Maxb0tbeep joined #nim
22:17:37*Maxb0tbeep quit (Quit: WeeChat 4.1.2)
22:30:41*junaid_ quit (Remote host closed the connection)
22:46:27FromDiscord<redmechanics> is it possible to compile a nim file to an apk ?
22:47:03FromDiscord<albassort> is an apk an executable binary?
22:48:31FromDiscord<albassort> no i think it can only be written in java or kotlin @redmechanics
22:49:11FromDiscord<albassort> otherwise probably follow a c guide https://community.rti.com/static/documentation/connext-dds/5.2.0/doc/manuals/connext_dds/getting_started_extras/html_files/RTI_ConnextDDS_CoreLibraries_GettingStarted_AndroidAddendum/Content/AndroidAddendum/Android_BuildRunHelloWorld_C_CPP.htm
22:49:19FromDiscord<albassort> and output it as a library
22:49:27FromDiscord<Elegantbeef> https://lisyarus.github.io/blog/programming/2023/07/19/porting-for-android.html atleast for a game reference
22:49:30FromDiscord<albassort> or put it in a JNI wrapper but that is a torture method
22:49:38FromDiscord<albassort> oh beef got it all in 1
22:49:41FromDiscord<albassort> ignore me
22:50:07FromDiscord<Elegantbeef> Suffice to say Android is not a simple target
22:50:12FromDiscord<Elegantbeef> Unless you target termux
22:50:50FromDiscord<albassort> im not sure why google decided to make the language of andorid java
22:51:03FromDiscord<albassort> feel like a lot of problems would be fixed if it was like c++
22:51:14FromDiscord<albassort> though they'd have less control
22:51:26FromDiscord<albassort> (edit) "control" => "control, more viruses"
22:52:15FromDiscord<albassort> apple's objective C makes more sense but i don't know why they didn't just use c++
22:53:55FromDiscord<albassort> if it happened 5 years later do you think they'd have done go
22:54:12FromDiscord<Elegantbeef> It is google so probably one of their many languages
22:55:25FromDiscord<albassort> i forgot about dart
22:55:27FromDiscord<albassort> lel
22:55:45FromDiscord<MDuardo> Didn't Apple killed and burried it with Swift?↵(@albassort)
22:56:35FromDiscord<Elegantbeef> They still use objective-c a bit but yes swift is their high level language now
22:56:42FromDiscord<albassort> im working on a company and i told my friend (co-worker?) to make the app
22:56:49FromDiscord<albassort> i dont wanna fuck wit hit
22:56:51FromDiscord<albassort> (edit) "wit hit" => "with it"
22:57:01FromDiscord<albassort> i'll design the frontend but i dont wanna get electrum working on android
22:57:11FromDiscord<albassort> (edit) "make" => "deploy"
22:57:41FromDiscord<albassort> so i don't know the specifics
22:57:43FromDiscord<takemichihanagaki3129> sent a code paste, see https://play.nim-lang.org/#ix=html>
22:57:55FromDiscord<takemichihanagaki3129> (edit)
22:58:13FromDiscord<takemichihanagaki3129> (edit)
22:58:27FromDiscord<Elegantbeef> `bool = 1` is a compile time error
22:58:29FromDiscord<albassort> how would the compiler know which the param is supposed to be
22:58:41FromDiscord<albassort> im gonna say, not easily
22:58:43FromDiscord<takemichihanagaki3129> In reply to @Elegantbeef "`bool = 1` is": IK, that was a typo.
22:58:56FromDiscord<MDuardo> What is the app for?↵(@albassort)
22:59:23FromDiscord<albassort> In reply to @MDuardo "What is the app": never talk about projects that may fall threw
22:59:33FromDiscord<Elegantbeef> Technically you can use a `type TypeVal[T: static auto] = distinct T` but you need to have `flag` be static
22:59:35FromDiscord<Elegantbeef> Through even
23:00:15FromDiscord<takemichihanagaki3129> In reply to @Elegantbeef "Technically you can use": That is what I'm looking for.
23:00:25FromDiscord<albassort> it is a project; that i think is cool, but maybe it'll go nowhere. if you stick around and know me for a while maybe you'll knows Mduardo if i actually get it finished
23:01:58FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=html>
23:02:04FromDiscord<Elegantbeef> It's not the same as you want probably
23:02:06FromDiscord<Elegantbeef> But it works
23:02:37FromDiscord<takemichihanagaki3129> sent a code paste, see https://play.nim-lang.org/#ix=html>
23:03:02FromDiscord<albassort> beef, you love making people's (bad) idea's real
23:03:04FromDiscord<takemichihanagaki3129> In reply to @Elegantbeef "It's not the same": That is exactly what I want.
23:03:18FromDiscord<Elegantbeef> I like using the Nim type system to do fun things!
23:03:21FromDiscord<takemichihanagaki3129> In reply to @albassort "beef, you love making": For real! LOL
23:03:35FromDiscord<Elegantbeef> Lean on the type system like your life depends on it(it does)
23:04:18FromDiscord<albassort> what happened to the goal of simplicity
23:04:18FromDiscord<Elegantbeef> This technique of using distincts like this is actually a pretty interesting path to new types https://forum.nim-lang.org/t/10800#72048 😄
23:04:30FromDiscord<Elegantbeef> The type system is simple
23:04:37FromDiscord<albassort> NOT WHEN YOU USE IT
23:04:45FromDiscord<albassort> you as in the particular
23:05:50FromDiscord<Elegantbeef> Why do extra work when the compiler can do the work for you
23:06:26FromDiscord<Elegantbeef> Hell I wrote a header generator API due to playing around with exposing nimib to FFI
23:06:34FromDiscord<Elegantbeef> It abuses the type system!
23:06:40FromDiscord<albassort> like a file header
23:06:55FromDiscord<Elegantbeef> Yes it generates C header files to document the ABI
23:07:18FromDiscord<Elegantbeef> https://github.com/beef331/libnimib/blob/master/src/libnimib/utils.nim#L154-L214 Suffice to say I abuse the typesystem and dispatch
23:07:34FromDiscord<albassort> huh C headers are called headers because they're file headers
23:07:36FromDiscord<Elegantbeef> It's all string based nonsense, but it works, and that's what counts... atleast I think
23:07:40FromDiscord<albassort> (edit) "huh C headers are called headers because they're file headers ... " added "but for a seperate file"
23:07:44FromDiscord<albassort> (edit) "seperate" => "separate"
23:07:59FromDiscord<albassort> In reply to @albassort "huh C headers are": i have been enlightened
23:13:42FromDiscord<Robyn [She/Her]> Could've had ABIs documented in Pascal for interop between everything 😔
23:35:20FromDiscord<Elegantbeef> Time to time travel back in time and kill dennis ritchie and ken thompson
23:42:21FromDiscord<albassort> In reply to @Elegantbeef "Time to time travel": kill all competition to lisp
23:42:58FromDiscord<albassort> I want to live in a alternative timeline where lisp had no GC, and linux was written in lisp
23:43:46FromDiscord<MDuardo> Actually I like Unix and Go↵Thanks Ken 🤓
23:44:36FromDiscord<albassort> actually what if we teleport beef to 1962
23:44:42FromDiscord<albassort> and make him be a founder of computer science
23:45:13FromDiscord<MDuardo> Made with secret alien technology↵(@albassort)
23:45:30FromDiscord<albassort> Linux was actually gotten from Roswell in 1947
23:47:16FromDiscord<albassort> https://media.discordapp.net/attachments/371759389889003532/1190078545364521090/image.png?ex=65a07e03&is=658e0903&hm=629d88451c527e321ef7f5e6f27fbca94bb5171303ea0a1685e0f0c53e3e2f5a&
23:47:30FromDiscord<albassort> i like how he included a language that doesn't exist
23:49:23FromDiscord<MDuardo> Explain plz↵I only now the existence of Common Lisp, Emacs Lisp, Scheme and Clojure
23:49:23FromDiscord<MDuardo> lisplogo\_fancy\_256.png https://media.discordapp.net/attachments/371759389889003532/1190079081610477628/lisplogo_fancy_256.png?ex=65a07e83&is=658e0983&hm=0ec1f05cf53ba978c497a91c2c940ff930d948812e44c3fd3bbb83d5200db158&
23:49:25FromDiscord<MDuardo> I am not Lispian enough to get it
23:51:01FromDiscord<albassort> >Linear Lisp produces no garbage (and seems to have no implementation)
23:51:28FromDiscord<albassort> https://hashingit.com/elements/research-resources/1992-08-LinearLisp.pdf
23:51:35FromDiscord<albassort> its a whitepaper
23:52:18FromDiscord<albassort> i aint reading all that but nobody has seemed to implement it so its probably bunk
23:53:43*azimut_ quit (Ping timeout: 240 seconds)
23:54:12FromDiscord<MDuardo> I would really love to work on it but right now I am too dumb for doing it↵↵Maybe be like certain German guy who made a programming language with a yellow crown as logo
23:54:43FromDiscord<albassort> im not as smark as those ferllows
23:54:48FromDiscord<albassort> (edit) "smark" => "smart" | "ferllows" => "fellows"
23:54:59FromDiscord<albassort> we stand on the shoulders of giants
23:55:01FromDiscord<albassort> and thats ok
23:56:23FromDiscord<albassort> the language i really wanna learn is futhark
23:56:23FromDiscord<albassort> https://github.com/diku-dk/futhark
23:56:26FromDiscord<albassort> but i cant grasp it
23:58:01FromDiscord<albassort> one project i wanna work on is some kind of game-toolkit with futhark and nim
23:58:37FromDiscord<MDuardo> I'm looking at the examples↵↵Looks like a like a Nimified Zig