[2021-03-13 00:17:12] I'm aware of two nacl projects; one is for running native code in a sandbox, the other is a crypto thing [2021-03-13 00:19:19] Given the crypto references in the linked python file, I'd assume this is the crypto one [2021-03-13 00:31:40] → dave0 joined (~davezero@069.d.003.ncl.iprimus.net.au) [2021-03-13 01:13:28] → f-a joined (~f-a@151.38.80.122) [2021-03-13 01:29:25] ⇐ Zarutian_HTC quit (~bj@173-133-17-89.fiber.hringdu.is): Read error: Connection reset by peer [2021-03-13 01:29:43] → Zarutian_HTC joined (~bj@173-133-17-89.fiber.hringdu.is) [2021-03-13 01:31:54] earlier I had said that there was no minimalist emacs clone that had a built-in lisp engine. Actually, somebody managed to get a Scheme engine in Zile: [2021-03-13 01:32:00] https://github.com/spk121/zile [2021-03-13 01:38:32] on my system (binaries not stripped or size optimized) the executable is 359Kb. Though, there is a few MBs of link dependencies, most significantly libguile providing the Scheme engine [2021-03-13 01:42:22] it might be interesting if somebody did the same project withh tinyscheme [2021-03-13 01:57:16] ⇐ wineroots quit (f24d257755@gateway/shell/disroot.org/x-nteygczchcqxuisb): Remote host closed the connection [2021-03-13 02:00:36] ⇐ f-a quit (~f-a@151.38.80.122): Quit: leaving [2021-03-13 02:03:05] ⇐ dave0 quit (~davezero@069.d.003.ncl.iprimus.net.au): Quit: dave's not here [2021-03-13 02:42:00] → hosewiejacke joined (~hosewieja@i5C741C1D.versanet.de) [2021-03-13 02:58:29] lispmacs: oh great [2021-03-13 03:32:33] ⇐ hosewiejacke quit (~hosewieja@i5C741C1D.versanet.de): Ping timeout: 245 seconds [2021-03-13 03:59:10] → dave0 joined (~davezero@069.d.003.ncl.iprimus.net.au) [2021-03-13 04:21:02] ⇐ _whitelogger quit (~whitelogg@uruz.whitequark.org): Remote host closed the connection [2021-03-13 04:24:00] → _whitelogger joined (~whitelogg@uruz.whitequark.org) [2021-03-13 06:21:46] → really2 joined (~justafrie@107.152.102.135) [2021-03-13 06:26:21] ⇐ really2 quit (~justafrie@107.152.102.135): Ping timeout: 264 seconds [2021-03-13 06:40:26] → tech_exorcist joined (txrcst@gateway/shell/hashbang/x-cevmybznzthdapyp) [2021-03-13 07:24:00] ⇐ Zarutian_HTC quit (~bj@173-133-17-89.fiber.hringdu.is): Remote host closed the connection [2021-03-13 08:01:24] if I'm building in forth for AVRs, is amforth or flashforth better? [2021-03-13 08:04:20] ⇐ KipIngram quit (~kipingram@62.151.183.147): *.net *.split [2021-03-13 08:04:20] ⇐ TangentDelta quit (~tangentde@c-71-62-63-154.hsd1.va.comcast.net): *.net *.split [2021-03-13 08:04:20] ⇐ lonjil quit (~quassel@45.76.33.14): *.net *.split [2021-03-13 08:04:30] → lonjil2 joined (~quassel@45.76.33.14) [2021-03-13 08:04:36] → TangentDelta joined (~tangentde@c-71-62-63-154.hsd1.va.comcast.net) [2021-03-13 08:05:04] → KipIngram joined (~kipingram@62.151.183.147) [2021-03-13 08:05:28] * KipIngram → Guest47703 [2021-03-13 08:14:57] * Guest47703 → KipIngram [2021-03-13 08:15:06] * ChanServ set +v KipIngram [2021-03-13 08:32:34] → wineroots joined (f24d257755@gateway/shell/disroot.org/x-ipxdfvzoxjzxjauv) [2021-03-13 08:37:36] → really2 joined (~justafrie@107.152.102.135) [2021-03-13 08:37:36] ⇐ really2 quit (~justafrie@107.152.102.135): Excess Flood [2021-03-13 09:24:28] ⇐ clog quit (~nef@bespin.org): Ping timeout: 260 seconds [2021-03-13 09:30:29] nihilazo: I have not used amforth, so I can only tell you the reasons I like flashforth: [2021-03-13 09:31:58] 1. automatically saves new functions to eprom (unless you disable that), so you don't have to reburn/reload constantly; [2021-03-13 09:32:29] or, not EPROM: flash I meant [2021-03-13 09:33:39] 2. has RAM, Flash, and EPROM all mapped over one contiguous address space, for easy read/write to any (with option to disable flash/eeprom writes) [2021-03-13 09:36:38] 3. have used it for a while and haven't had any serious problems with it. [2021-03-13 09:37:14] cons: [2021-03-13 09:40:21] flashforth itself doesn't come with any protocols implemented beyond uart. So you have to implement SPI, I2C, etc. as needed. I find that if you are willing to study the datasheet, this isn't too hard to do, so maybe some of my work is helpful: https://librehacker.com/2021/01/30/flashforth-spi-328p/ [2021-03-13 09:40:37] mark4, let me know when you push your modes to x4. [2021-03-13 09:40:57] it is all basically port based IO in the end [2021-03-13 09:41:15] with setting some config registers [2021-03-13 09:43:32] along the same vein, you don't have a set of "arduino" functions built-in, like digitalwrite. I started to implement those but found it made more sense just to work directly with the PORT, PIN, etc. registers as described in the data sheet. Might need to create some abstractions though if you are trying to make stuff portable across multiple MCs [2021-03-13 09:43:52] nihilazo, major diff between AVR & 6502 is AVR is Harvard architecture - different code & data memories. 6502 has an unusual zero page feature that acts as a nice register file. AVR has a cleaner ISA and just about every instruction executes in a single cycle which is nice. [2021-03-13 09:44:53] proteusguy: (two cycles) [2021-03-13 09:45:13] proteusguy: thinking of the 328P, but not sure about their more modern chips [2021-03-13 09:46:20] 328P is two cycles for most instructions, but 328P is technically obsolete, replaces by the 328PB or something [2021-03-13 09:48:10] anyway, flashforth also has a quirk in the timing in sending and receiving of interpreter code, though it isn't a problem if willing to use the provided python shell of sending large files: https://librehacker.com/2021/01/22/flashforth-question-sending-a-file/ [2021-03-13 09:48:26] *shell for [2021-03-13 09:52:42] I had one time I recall with flashforth that I was messing around a lot with the voltage on the board, and the interpreter got stuck in some weird garbage output mode, which couldn't be fixed by a simple reset. I had to reflash flashforth to fix it. wasn't a big problem for me, but made me wonder about production environments. but I suppose in production environment you would also be disabling flash writes, burning [2021-03-13 09:52:42] some more chip bits, and maybe disabling the interpreter, so i didn't want to rush to any judgments on stability [2021-03-13 09:53:31] hope that is helpful for comparison with amforth [2021-03-13 09:55:34] thanks [2021-03-13 10:01:50] nihilazo: one other maybe bonus of flashforth is it is already available also for some PIC MCs if you want to play with PIC at some point [2021-03-13 10:02:50] one caveat: I haven't actually got around to trying to build flashforth firmware myself; I've just been using the precompiled binaries that come with it, which feed right into avrdude [2021-03-13 10:04:56] his build instructions were for some Windows compiler he was driving through wine, which was a little weird [2021-03-13 10:05:46] Windows assembler, to be more accurate: avrasm2.exe [2021-03-13 10:06:04] yeah that's something I find odd about amforth too, they seem to be using the windows avr assembler in wine [2021-03-13 10:06:43] hopefully assembling with avr-gas instead is not too painful [2021-03-13 10:07:00] or something [2021-03-13 10:07:29] haven't looked into it yet [2021-03-13 10:07:51] but I think all the code needed is there [2021-03-13 10:08:50] If software has changed license from GPL to proprietary, it's still fine to fork the last GPL commit right? [2021-03-13 10:09:56] siraben: yes [2021-03-13 10:10:23] lispmacs: ok, great. [2021-03-13 10:10:44] I hate it when upstream gets bought out [2021-03-13 10:11:48] siraben: hmm, yeah, if they own the author's rights now, they can change the license. But they can't take away permissions that have already been given on released code [2021-03-13 10:12:12] ⇐ shmorgle quit (~patrick@gw.neurotica.com): Quit: [TalkSoup] via NEXTSPACE [2021-03-13 10:12:57] assuming there is only one author [2021-03-13 10:13:49] if it was a work were a lot of people contributed, you might have a legal basis for opposing them changing the license of the whole project [2021-03-13 10:14:47] in which case I might send an email to the SFLC [2021-03-13 10:15:26] → shmorgle joined (~patrick@gw.neurotica.com) [2021-03-13 10:15:41] → f-a joined (~f-a@151.36.87.133) [2021-03-13 10:16:53] asking for their opinion [2021-03-13 10:18:12] I'm assuming you don't have your own team of lawyers to actually do anything about it. But SFLC is a team of lawyers which will do something about it for free, if they believe their is a solid legal case [2021-03-13 10:18:24] *there is [2021-03-13 10:30:46] or, I might start with the SFC: https://sfconservancy.org/ [2021-03-13 10:36:11] it's just a small thing regarding https://github.com/LibreSprite/LibreSprite [2021-03-13 10:36:27] but also in case for future problems it's good to know [2021-03-13 10:42:21] did aseprite stop being open source? :( [2021-03-13 10:44:14] it still is iirc [2021-03-13 10:44:41] they use a weird monetising money where they claim they are not [2021-03-13 10:45:24] https://github.com/aseprite/aseprite [2021-03-13 10:45:31] yeah, stupid EULA for binaries [2021-03-13 10:46:07] https://github.com/aseprite/aseprite/blob/main/INSTALL.md are you brave enough to compile it yourself? [2021-03-13 10:48:41] doesn't seem too bad tbh [2021-03-13 10:48:52] lol there's an AUR package nice [2021-03-13 10:49:04] I love source-based package managers for exactly this reason [2021-03-13 11:44:47] proteusguy: im about to push was was done to x4 a while back, im not 100% sure what i was working towards withthem, there is one extension that needs a complete rewrite but thats not going to be difficult :) [2021-03-13 11:45:01] but i dont think there are any real fixes in these pushes yet [2021-03-13 12:05:06] ⇐ dave0 quit (~davezero@069.d.003.ncl.iprimus.net.au): Quit: dave's not here [2021-03-13 12:16:50] ⇐ spoofer quit (~spoofer@64.185.119.226): Remote host closed the connection [2021-03-13 12:29:18] → spoofer joined (~spoofer@64.185.119.226) [2021-03-13 12:43:35] ⇐ f-a quit (~f-a@151.36.87.133): Quit: leaving [2021-03-13 12:51:28] → mirrorbird joined (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) [2021-03-13 12:57:22] ⇐ gravicappa quit (~gravicapp@h62-133-183-196.dyn.bashtel.ru): Ping timeout: 256 seconds [2021-03-13 12:59:59] → gravicappa joined (~gravicapp@h109-187-223-212.dyn.bashtel.ru) [2021-03-13 13:43:13] → f-a joined (~f-a@mi-18-27-198.service.infuturo.it) [2021-03-13 13:47:30] → Zarutian_HTC joined (~bj@173-133-17-89.fiber.hringdu.is) [2021-03-13 13:49:39] ⇐ Zarutian_HTC quit (~bj@173-133-17-89.fiber.hringdu.is): Read error: Connection reset by peer [2021-03-13 13:49:58] → Zarutian_HTC joined (~bj@173-133-17-89.fiber.hringdu.is) [2021-03-13 14:06:51] ⇐ rixard quit (~rixard@158.174.122.239): [2021-03-13 14:14:55] → rixard joined (~rixard@158.174.122.239) [2021-03-13 14:19:09] ⇐ gravicappa quit (~gravicapp@h109-187-223-212.dyn.bashtel.ru): Ping timeout: 264 seconds [2021-03-13 14:43:12] ⇐ mirrorbird quit (dwsjeid911@gateway/vpn/mullvad/dwsjeid911): Ping timeout: 246 seconds [2021-03-13 15:09:22] ⇐ tech_exorcist quit (txrcst@gateway/shell/hashbang/x-cevmybznzthdapyp): Quit: tech_exorcist [2021-03-13 15:09:48] → tech_exorcist joined (txrcst@gateway/shell/hashbang/x-xqsehmmzwiocgfek) [2021-03-13 15:49:39] → mirrorbird joined (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) [2021-03-13 17:01:47] → neto joined (~neto@79.72.37.188.rev.vodafone.pt) [2021-03-13 17:03:14] anyone have experience with x4 forth and know how to get command line arguments? [2021-03-13 17:03:36] on gforth you'd use next-arg but that is not a word in x4 [2021-03-13 17:05:46] me i wrote it lol [2021-03-13 17:05:56] there is actually an example of that in src/examples [2021-03-13 17:06:05] I am aware : ) [2021-03-13 17:06:11] aight i'll read that thanks [2021-03-13 17:06:30] i'm looking into porting my text editor from gforth to x4 [2021-03-13 17:06:38] should p pretty easy as it's only 150 lines of code [2021-03-13 17:06:58] cool [2021-03-13 17:07:08] showargs.f is what you are looking for btw [2021-03-13 17:07:50] you might also want to look at src/ext/args.f [2021-03-13 17:08:11] so you use the normal C interface of argc and arg# [2021-03-13 17:08:26] i pull argc and argv off the stack yes [2021-03-13 17:08:28] looks good, thanks [2021-03-13 17:08:39] mhm obv gforth does that too but provides a diff interface [2021-03-13 17:10:35] you also used to be able to do a shebang in forth soruces but im not sure if that still works lol [2021-03-13 17:10:57] #! /path/to/x4 foo bar bam fud [2021-03-13 17:14:03] → dave0 joined (~davezero@069.d.003.ncl.iprimus.net.au) [2021-03-13 17:14:56] mark4: yep just tested it on gforth, still works [2021-03-13 17:15:27] i mean in x4 i dont use g4th ever :) [2021-03-13 17:15:39] ah the fact the strings from arg@ are null terminated is quite annoying [2021-03-13 17:16:07] Why is that "quite annoying"? [2021-03-13 17:16:10] does x4 use counted strings? [2021-03-13 17:16:11] thers a strlen that will convert asciiz to ( a1 n1 --- ) [2021-03-13 17:16:26] yes but the environment and command line args are asciiz [2021-03-13 17:16:32] well because most forth words don't act on null terminated strings veltas [2021-03-13 17:16:39] you can do create foo ," a counted string" [2021-03-13 17:16:56] or create bar ,' a non counted non terminated string' 0 c, <-- you have to terminate it [2021-03-13 17:17:09] which is what you hVe to do for file creation etc [2021-03-13 17:17:19] the file syscalls want an asciiz file name [2021-03-13 17:17:45] neto: It's trivial to write a word to get a u form from a null-terminated string, and also x4 apparently already has this word [2021-03-13 17:18:09] right, when I wrote a little linux forth I just used null terminated strings for everyything [2021-03-13 17:18:26] veltas: I am aware it's trivial, it's still less than ideal [2021-03-13 17:18:35] I don't know "quite annoying" seems a bit strong [2021-03-13 17:18:36] ⇐ f-a quit (~f-a@mi-18-27-198.service.infuturo.it): Quit: bb [2021-03-13 17:19:00] I'm not trying to tone police here just confused by that specific reaction [2021-03-13 17:19:04] some things annoy the FREEEEEK out of me lol [2021-03-13 17:19:14] "quite annoying" is pretty light in my books, but maybe I useed it wrong [2021-03-13 17:19:15] like autotools generating a Makefile with a SPACE separator [2021-03-13 17:19:16] grrr [2021-03-13 17:19:50] What instead of tab characters? [2021-03-13 17:19:57] yea [2021-03-13 17:20:10] thought you hated tab chars mark4 ? [2021-03-13 17:20:16] it took me 2 hours just to figure out why the FUCK it was not creating a Makefile in the first place [2021-03-13 17:20:18] They're required by make [2021-03-13 17:20:25] neto i do but Makefiles required tabs [2021-03-13 17:20:31] which is utterly moronic [2021-03-13 17:20:49] I wouldn't know, I just use tabs all the time : ) [2021-03-13 17:21:01] tabs are the spawn of satan :P [2021-03-13 17:21:27] I must be Satan himself with how many i've spawned then! [2021-03-13 17:21:32] what's your gripe with them [2021-03-13 17:21:53] I like tabs, don't know your issue. But we banned them at work because it's easier to write a script to ban tab characters from source than bad alignment or mismatched tab size use [2021-03-13 17:21:57] they clusterfuck up any soruce file containing them [2021-03-13 17:22:00] guaranteed [2021-03-13 17:22:21] People are really bad at not butchering whitespace in general [2021-03-13 17:22:46] We got fed up with every code review being held up by people misusing spaces and tabs [2021-03-13 17:22:56] just enforce 8 char long tabs like Linus did [2021-03-13 17:22:57] you have a tab size of 8, i have a tab size of 2. so someone does tab tab tab tab foo(); and now the sources are [2021-03-13 17:22:59] CLUSTERFUCK [2021-03-13 17:23:10] 8 char tabs are also idiotic [2021-03-13 17:23:17] your fault for having a tab size of 2 [2021-03-13 17:23:24] they eat up too much realestate that shoul be dedicated to comments on the right [2021-03-13 17:23:25] source here [2021-03-13 17:23:27] comment here [2021-03-13 17:23:27] 8 char tabs are conventional [2021-03-13 17:23:28] source here [2021-03-13 17:23:30] comment here [2021-03-13 17:23:34] is also clusterfuck [2021-03-13 17:23:37] should be [2021-03-13 17:23:42] source here comment here [2021-03-13 17:23:48] the convention is wrong [2021-03-13 17:23:56] No thanks mark4, comments at end of line are bad [2021-03-13 17:24:31] i disaagree because i can now scan down the left column and ignore the right column [2021-03-13 17:24:34] or vice versa [2021-03-13 17:24:52] Colours [2021-03-13 17:24:57] the eyes scan vertically much better than they do horizontally which is why newspapers publish in tall thin columns [2021-03-13 17:25:08] yes there is a u in colour [2021-03-13 17:25:09] my problem with end of line comments is that they often go over the 80 char limit and so are hard to read [2021-03-13 17:25:14] Funny because I find newspapers harder to read than source code [2021-03-13 17:25:23] i enforce 75 chars but 80 is ok [2021-03-13 17:25:31] its a soft rule, i can go slightly over [2021-03-13 17:25:49] well don't you often run into needing more space? [2021-03-13 17:26:43] I have come to associate comments at the end of a line with bad code [2021-03-13 17:29:09] The point of tab characters is to make it easier to tabulate. On a typewriter 8 was a good choice, which is where the convention comes from. [2021-03-13 17:29:22] Indentation and tabulation are two different things though [2021-03-13 17:31:33] I prefer indent of 4, 2 feels like a 'clusterfuck' to me [2021-03-13 17:32:45] I indent with 8 and I use tabs, bringback from C ig [2021-03-13 17:44:27] mark4: what's the -s option? [2021-03-13 17:44:45] same as -f, no? [2021-03-13 17:50:07] is that in the shebang? [2021-03-13 17:50:22] i htink you need to not use -f in the shebang but -s but its been so long i cant remember why lol [2021-03-13 17:50:35] something to do with running default FIRST i think [2021-03-13 17:50:50] wdym running default? [2021-03-13 17:50:54] you can do ./x4 -f src/examples/dots/wmdots.f [2021-03-13 17:50:56] yeah it is in the shebang [2021-03-13 17:51:00] there is a default init chain [2021-03-13 17:51:10] there are actually 3 default init chains [2021-03-13 17:51:25] you don't have it listed in the help output btw [2021-03-13 17:51:37] yea forgot about that lol [2021-03-13 17:51:39] and you have a typo in the help output :p [2021-03-13 17:51:52] in the shebang you have to use #! x4 -s foo bar bam [2021-03-13 17:51:59] yea i have typos all over lol [2021-03-13 17:52:22] smh [2021-03-13 17:53:03] mark4, is #! a word that just ignores to the newline? [2021-03-13 17:53:26] not him but it should be, yeah cmtptr [2021-03-13 17:53:33] yes [2021-03-13 17:53:34] just line the comment \ word [2021-03-13 17:53:41] like* [2021-03-13 17:53:42] heh, cool. that's how i did it in mine too [2021-03-13 17:54:52] mark4: is there any examples for files? [2021-03-13 17:55:04] just simple open, close, read-line, etc [2021-03-13 17:56:08] not really, there is fload but its not a trivial example [2021-03-13 17:56:30] all of that was meant to go in ext/file.f eventually [2021-03-13 17:56:46] some of it is in there [2021-03-13 17:57:51] i'll just read file.f then, np. [2021-03-13 17:58:10] look at fload.f too [2021-03-13 17:59:31] is the linux syscall? can I just use that if I wanna pass a null terminated string then? [2021-03-13 18:00:33] I only see an fload.s mark4 [2021-03-13 18:01:32] oh right lol [2021-03-13 18:01:35] that one [2021-03-13 18:01:56] but its basically a .f file passed to nasm [2021-03-13 18:06:37] file.f seems to be enough for what I need [2021-03-13 18:07:01] kk [2021-03-13 18:07:02] I just need open, read, read-line and write-line [2021-03-13 18:07:52] actually, where do you define the permissions? [2021-03-13 18:08:33] n the open call :) [2021-03-13 18:09:06] i did not define them in any sources, its on the todo list, i usually just hard code them for now [2021-03-13 18:09:35] i have a problem with leaving deadwood in binaries, one of the things im planning is a transient vocabulary [2021-03-13 18:09:48] where #defines for things like file permissions etec can all be put [2021-03-13 18:10:09] they exist in that voc till you do a turnkey and then that entire vocabulary is deleted [2021-03-13 18:10:20] thats why i have my const word [2021-03-13 18:10:24] 0 const zero [2021-03-13 18:10:41] will act like a var (value) except in compile mode when it compiles itself as a literal [2021-03-13 18:10:46] switching vocabularies? yeah that's in the ANSI standard I believe [2021-03-13 18:11:06] but the definition for zero still exists... i want things like that in a transient vocab that is thrown away later [2021-03-13 18:11:21] i have vocabularies [2021-03-13 18:11:28] you know how headerless words work right? [2021-03-13 18:11:43] you create headerless words but they are creaed with headers and you can call them till you behead [2021-03-13 18:11:57] i want to be doing something similar with the CODE [2021-03-13 18:12:08] yes I think that is called markers in ANSI forth? [2021-03-13 18:12:25] well markers exist here to they are part of forget [2021-03-13 18:12:37] the problem is. i want to be able to forget JUST what definitions are in a specific voc [2021-03-13 18:12:46] if you do marker blah then create 286592458 definitions [2021-03-13 18:12:58] then do blah you forget blah and everything above it [2021-03-13 18:13:06] not what im thinking of [2021-03-13 18:13:41] i want to be abl eto forget this keep this forget this forget this keep this keep this keep this.... interleaved as it wer [2021-03-13 18:13:58] by putting all the words i eventually want to forget in their own vocabulary in their own memory spae [2021-03-13 18:14:39] yeah just use a separate colon definition that defines into a separate vocabulary that gets erased every time behead is called [2021-03-13 18:14:41] transient definitons..... define a lot of constants myvoc defintions... creatae a lot of code that uses the constants then DUMP the definitons for the constants [2021-03-13 18:14:51] instead of all the previously defined functions with marker [2021-03-13 18:14:54] I see what you mean [2021-03-13 18:14:55] because all of the references to them will have been compiled as literals not references to the constant word [2021-03-13 18:15:20] behead only discards headers not the code itself [2021-03-13 18:15:33] i have (headers to) [2021-03-13 18:15:33] mhm, what object oriented folk would call private and public functions [2021-03-13 18:15:57] ah so the words are still taking up that space in memory? [2021-03-13 18:16:00] so i do these words have headers YES!!! [2021-03-13 18:16:16] the reason for headerless words is so you dont polute namespace [2021-03-13 18:16:30] and also you make words "private" to the module they are defined in [2021-03-13 18:16:47] so module B cannot call "private" words defined in module A [2021-03-13 18:16:56] because there are no headers for them [2021-03-13 18:17:02] yeah they're private functions like in OOP [2021-03-13 18:17:12] but all the words in module A that referenced them can still do so [2021-03-13 18:17:24] mhm the pointers are still valid [2021-03-13 18:17:37] yes the execution tokens pointing to the code are still valid [2021-03-13 18:17:58] yeah I think the ANSI system for doing that is more restrictive [2021-03-13 18:17:59] what i want to be able to do is have words created in a special voc with has a special buffer for both their headers and their code [2021-03-13 18:18:16] and then just blow away that vocs buffers entirely on demand [2021-03-13 18:18:32] when you create a structure in xr4 [2021-03-13 18:18:33] x4 [2021-03-13 18:18:37] struct: blah [2021-03-13 18:18:39] db foo [2021-03-13 18:18:40] dw bar [2021-03-13 18:18:44] ;strut [2021-03-13 18:18:45] why do you use
instead of a special colon definition? like :headerless or something [2021-03-13 18:18:52] BLAH is a constant which defines the SIZE of the structure [2021-03-13 18:19:04] foo is an offset into the structure and bar is an offset [2021-03-13 18:19:10] they are simply constants [2021-03-13 18:19:22] yeah ik how forth structs work [2021-03-13 18:19:33] because i think of as pointing towards the code with headers [2021-03-13 18:19:51] and i find them to be far less visually cluttering [2021-03-13 18:19:58] oh okay. I found it p confusing when I first saw them [2021-03-13 18:19:59] :headerless bllah blah blah ; [2021-03-13 18:20:01] :headerless bllah blah blah ; [2021-03-13 18:20:01] :headerless bllah blah blah ; [2021-03-13 18:20:01] :headerless bllah blah blah ; [2021-03-13 18:20:18] instead of maybe a better name would be :priv or something like that [2021-03-13 18:20:38] nope. i do have m: for macro definitions, self inliing colon defs [2021-03-13 18:20:49] or, what abou = public [2021-03-13 18:21:02] but i dont use special-colon-word-to-create-headerless-words: blah lots of forth code here ; [2021-03-13 18:21:09] because that would absolutely CLUSTER FUCK up the sources [2021-03-13 18:21:19] i find my way much cleaner [2021-03-13 18:21:31] i hate c because of all the BULLSHIT (type) casging you have to do [2021-03-13 18:21:43] (int) fuge = 5; [2021-03-13 18:21:44] ugh [2021-03-13 18:21:46] hate that shit [2021-03-13 18:21:57] i want to see fudge = 5; [2021-03-13 18:22:00] less NOISE [2021-03-13 18:22:15] I find the choice of words for poor, prefer private and public, much more clear what is going on : ) [2021-03-13 18:22:38] yes ofc I agree, the beauty of forth is how clean and noise free the code is, if written properly [2021-03-13 18:23:27] you can define ' alias public [2021-03-13 18:24:02] are you agreeing with me those are better names? :p [2021-03-13 18:24:06] nope [2021-03-13 18:24:12] im not disagreeing with you though :) [2021-03-13 18:24:14] but yeah doesn't matter much, just confusing at first [2021-03-13 18:24:24] im saying... if you want those definitions its trivial and free to define them [2021-03-13 18:24:27] are you taking the 5th on this one? [2021-03-13 18:24:34] an alias is simply a second header on existing code [2021-03-13 18:24:56] you dont create a new definition, you are simply creating a new symbol for an existing definition :) [2021-03-13 18:25:08] : foo 100 0 do i . loop ; [2021-03-13 18:25:12] ' foo alias bar [2021-03-13 18:25:19] I am aware mhm [2021-03-13 18:25:21] hyou dont get TWO definitions for foo, you simply get two headers :)( [2021-03-13 18:25:32] but we don't want a dozen words for the same thing, do we now!? [2021-03-13 18:25:32] so.. define your private/public aliases :() [2021-03-13 18:25:54] its harmless, its only head space and if it makes the code more readable to you... . . [2021-03-13 18:26:16] what's the length of PAD btw? [2021-03-13 18:26:56] as long as you need it to be basically [2021-03-13 18:27:05] pad is defined as here 256 + i believe [2021-03-13 18:27:34] the only thing you need to be careful of is the fact that when you are creating headerless words the buffer for them is 8k or 16k? above here [2021-03-13 18:28:02] so once you start making headerless words you have to behead before here catches up to where your headerless word headers are being compiled to [2021-03-13 18:28:06] :) [2021-03-13 18:28:26] yeah your fname>pad word doesn't do any bound checking [2021-03-13 18:28:38] lol im good at not doing bounds checking :) [2021-03-13 18:28:45] → f-a joined (~f-a@151.44.11.89) [2021-03-13 18:28:47] im an expert :) [2021-03-13 18:30:40] I'll just say opening a file with a name over 256 bytes is "undefined behaviour", no worries B-) [2021-03-13 18:34:51] mark4: uh so is there any reason why would be returning 4 things instead of just one file descriptor?? [2021-03-13 18:35:13] and one boolean ofc [2021-03-13 18:35:42] wait no it isn't even supposed to return a boolean [2021-03-13 18:36:09] show me your use case? [2021-03-13 18:36:45] i'm basically doing "arg@ " [2021-03-13 18:37:01] with some code to check if arg@ returns a 0 [2021-03-13 18:37:38] returns "-1 -1 -1217056724 1" [2021-03-13 18:38:17] what terminal are you using btw? [2021-03-13 18:38:23] st [2021-03-13 18:38:32] its just called st? [2021-03-13 18:38:49] yes, simple terminal [2021-03-13 18:38:59] https://st.suckless.org/ [2021-03-13 18:39:14] oh. yea suckless.org sucks lol [2021-03-13 18:39:32] i think if you did that same code in a different termainl you might have different results [2021-03-13 18:39:41] why do you say that [2021-03-13 18:39:45] okay i'll try it [2021-03-13 18:39:46] its a guess [2021-03-13 18:39:56] why do you say they suck [2021-03-13 18:40:18] because their code is horrible lol [2021-03-13 18:40:39] tho mine has issues too [2021-03-13 18:40:47] I got p much the same thing but starting with 4 instead of -1 [2021-03-13 18:41:13] ok quit out of x4 [2021-03-13 18:41:15] then launch it [2021-03-13 18:41:19] and look at tbhe status line [2021-03-13 18:41:22] how many items on the stack [2021-03-13 18:41:31] i'm lauching it with -f [2021-03-13 18:41:41] dont [2021-03-13 18:41:43] yet [2021-03-13 18:41:45] do ./x4 [2021-03-13 18:41:49] then do fload file.f [2021-03-13 18:41:59] but before you do the fload, how many items on the stack? [2021-03-13 18:42:13] it might also be my command line code is broken now [2021-03-13 18:42:22] which would be annoying lol. another thing to fix [2021-03-13 18:42:24] 0 [2021-03-13 18:42:34] ok and fload foo.f gives same results? [2021-03-13 18:42:36] I wasn't loading file.f in my source file [2021-03-13 18:42:50] no [2021-03-13 18:43:00] try doing so [2021-03-13 18:43:04] not nested floads [2021-03-13 18:43:06] just ./x4 [2021-03-13 18:43:17] fload what-ever-souree-file-you-were-using-before.f [2021-03-13 18:43:25] instead of ./x4 -f file.f [2021-03-13 18:43:27] do ./x4 [2021-03-13 18:43:28] fload file.f [2021-03-13 18:43:43] 0 items on stack [2021-03-13 18:44:04] ok so it workd differently? [2021-03-13 18:44:14] can you paste your source file? [2021-03-13 18:44:34] well no cuz when I run just x4 it has no args [2021-03-13 18:44:40] so I had to comment out the code [2021-03-13 18:44:48] you lost me [2021-03-13 18:44:49] oh [2021-03-13 18:44:55] your code parses the command line [2021-03-13 18:44:56] arg@ returns 0 [2021-03-13 18:45:03] yes so I can't test it that way [2021-03-13 18:47:01] yeah I ran it in xterm and got the same output [2021-03-13 18:47:11] 4 numbers on the stack after calling [2021-03-13 18:47:46] ok so instead of doing arg@ do this [2021-03-13 18:47:59] create filename ,' some-file' 0 c, [2021-03-13 18:48:12] then do filename and see if you get the same result [2021-03-13 18:49:05] i get 2 values returned [2021-03-13 18:49:08] doesn't give an error but stack is empty [2021-03-13 18:49:11] -1 for syccess [2021-03-13 18:49:17] and the file handle [2021-03-13 18:49:26] create filename ,' x4.rcf' 0 c, ok [2021-03-13 18:49:26] filename ok [2021-03-13 18:49:26] . -1 ok [2021-03-13 18:49:26] . -134701012 ok [2021-03-13 18:49:26] [2021-03-13 18:50:00] oh wait. thats -1 for failure not success [2021-03-13 18:50:03] nope not what I get [2021-03-13 18:50:33] i did it a second time and got a 3 back [2021-03-13 18:50:43] i'm running an old kernel version but I don't think the open syscall has changed in twenty years [2021-03-13 18:50:49] try doing filename again [2021-03-13 18:51:01] it has :) [2021-03-13 18:51:09] but thats not the problem [2021-03-13 18:51:44] nope still getting nothing [2021-03-13 18:51:46] empty stack [2021-03-13 18:52:04] when I run it from a file I do get 1 and then what I think is the file handler [2021-03-13 18:52:10] but also get 2 extra value [2021-03-13 18:53:28] right now my x4 has 2 items already on the stack at launch [2021-03-13 18:53:40] i'm running a 5 year old version of the kernel btw [2021-03-13 18:53:43] because of a change i made thats not pushed but thats not what you are seeing [2021-03-13 18:53:47] should'nt be the problem i don't think [2021-03-13 18:53:54] https://dpaste.com/AJY53KNFP [2021-03-13 18:53:57] save that file [2021-03-13 18:53:59] and do ./x4 [2021-03-13 18:54:00] yeah don't think it is [2021-03-13 18:54:04] fload blah.f [2021-03-13 18:54:05] test [2021-03-13 18:54:13] you should see 3 [2021-03-13 18:54:58] except i do not see that here either [2021-03-13 18:54:59] grrr [2021-03-13 18:55:10] i think you have found a really bad bug [2021-03-13 18:55:26] that's good to hear B-) [2021-03-13 18:55:29] no need to thank me [2021-03-13 18:56:00] i run filename and get ZERO bytes back [2021-03-13 18:56:20] bye [2021-03-13 18:56:24] wrong window [2021-03-13 18:56:53] ok i know whats happening to me [2021-03-13 18:57:01] im getting a stack underflow because of the changes i made [2021-03-13 18:57:05] if i do 1 2 3 test [2021-03-13 18:57:14] i get a file handle returned in place of the last item on the stack [2021-03-13 18:57:20] try that [2021-03-13 18:57:26] do fload blah.f [2021-03-13 18:57:29] 1 2 3 test [2021-03-13 18:57:30] 1 2 3 test? okay [2021-03-13 18:57:35] and whats on the stack? [2021-03-13 18:57:58] actually try 1 1 1 test because if you see a 3 at top of stack that might be the reeturned handle lol [2021-03-13 18:58:39] 3 2 1 [2021-03-13 18:59:23] yea try 1 1 1 test [2021-03-13 18:59:23] 4 1 1 [2021-03-13 18:59:23] if I run it with 1 1 1 [2021-03-13 18:59:33] yea [2021-03-13 18:59:44] hmm so first time I run it I get 3 1 1 [2021-03-13 18:59:56] you had X Y Z on the stack. you ran open. it ATE one of those values and then pushed the file handle of 3 [2021-03-13 18:59:56] I clear the stack with quit [2021-03-13 19:00:02] and I run it again and get 3 1 1 [2021-03-13 19:00:06] the next time you ran it you got a new file handle of 4 [2021-03-13 19:00:22] yes [2021-03-13 19:00:22] ⇐ tech_exorcist quit (txrcst@gateway/shell/hashbang/x-xqsehmmzwiocgfek): Quit: tech_exorcist [2021-03-13 19:00:28] I believe so [2021-03-13 19:00:31] so you are having the same stak issues im having [2021-03-13 19:00:54] it was a change i probably did wrong as a result of a discussion with veltas [2021-03-13 19:01:03] I thought was just a light wrapper around the open syscall [2021-03-13 19:01:30] when i define a system call word i do [2021-03-13 19:01:36] i'm surprised it wasn't found earlier with how often essential file io must be [2021-03-13 19:01:44] X Y syscall for the foo system call [2021-03-13 19:01:56] x and y are the syscall number and the number of parameters the syscall expects [2021-03-13 19:02:09] the word created is and its basically a two item constant [2021-03-13 19:02:13] neat where is that file for ? [2021-03-13 19:02:20] syscalls.s [2021-03-13 19:02:23] in src/kernel [2021-03-13 19:02:57] syscall is sort of : syscall create ;uses dosyscall c, c, ; [2021-03-13 19:03:02] if you can read that :) [2021-03-13 19:03:10] wait we aren't passing the permissions are we [2021-03-13 19:03:35] erm i should look up my existing uses cases on lol [2021-03-13 19:03:37] good point [2021-03-13 19:03:50] so it is working right [2021-03-13 19:04:04] maybe? [2021-03-13 19:04:08] maybe [2021-03-13 19:04:30] comment on fopen is ( n1 a1 --- fd ) [2021-03-13 19:04:35] n1 might be the permissions [2021-03-13 19:04:48] mhm it is according to the comments just above that line [2021-03-13 19:04:48] and a1 is of course the asciiz file name [2021-03-13 19:05:07] src/ext/resolver.f: 0 literal fopen \ open file for read [2021-03-13 19:05:29] that resolver is old never finished code [2021-03-13 19:06:10] look in fsave.f at the file-open definition [2021-03-13 19:06:20] : file-open ( --- fd | -1 ) [2021-03-13 19:06:20] \777 \ rwxrwxrwx [2021-03-13 19:06:20] \1101 \ O_TRUNC O_CREAT O_WRONLY [2021-03-13 19:06:20] bl word \ parse filename from input [2021-03-13 19:06:20] hhere count s>z \ convert name to ascii z [2021-03-13 19:06:21] ; [2021-03-13 19:06:56] it may be i have a bug in but i think i always used the 3 parameter version of open [2021-03-13 19:07:23] s>z converts a counted string to asciiz [2021-03-13 19:07:33] yes that would explain a yet undiscovered ug [2021-03-13 19:07:40] ya [2021-03-13 19:07:49] unexercised code is always bug free :) [2021-03-13 19:07:54] you implemented a similar function for fopen yeah [2021-03-13 19:08:55] hmm is \777 a word or a comment? [2021-03-13 19:09:13] no the \ is prefix for octal [2021-03-13 19:09:20] $ is for hex and % is for binary [2021-03-13 19:09:20] 0_0 [2021-03-13 19:09:29] o-okay, interesting choice [2021-03-13 19:09:29] \xxx is an octal number [2021-03-13 19:09:59] how does C inject octal numbers into stribngs? [2021-03-13 19:10:06] "foo\xxxbar [2021-03-13 19:10:08] " [2021-03-13 19:10:22] idk, i don't do octals [2021-03-13 19:10:35] hex and decimal is all I need [2021-03-13 19:10:38] octal is useful :) [2021-03-13 19:10:43] but rarely these days [2021-03-13 19:10:54] file permissions are octal though [2021-03-13 19:11:35] you don't need those 3 parameter file permissions to open files tho do you? [2021-03-13 19:11:56] usually r/o, w/o and r/w is all you need when opening files [2021-03-13 19:12:13] theres also flags [2021-03-13 19:12:21] like o-truncate, o-creat etc etc [2021-03-13 19:12:25] if it does not exist, create it [2021-03-13 19:12:29] if it exists, truncate it [2021-03-13 19:12:49] yeah ig i'm used to have those hidden away in wrapers but that's true [2021-03-13 19:13:23] why do you have file-open and fopen? [2021-03-13 19:13:30] I realise one is parsing and the other is not [2021-03-13 19:13:36] thats why :) [2021-03-13 19:13:44] but they could have shared code [2021-03-13 19:13:56] hmmm, really makes one think [2021-03-13 19:14:01] also one seems to be using and the other [2021-03-13 19:14:08] indeed [2021-03-13 19:14:16] also, one is b0rked :P [2021-03-13 19:14:19] it seems [2021-03-13 19:14:26] but might not be [2021-03-13 19:14:35] try \777 filename [2021-03-13 19:14:35] always good to have another one has a backup ;) [2021-03-13 19:14:46] oh boi okay [2021-03-13 19:15:58] got -1 [2021-03-13 19:16:11] thats failed [2021-03-13 19:16:16] whats errno [2021-03-13 19:16:20] errno . [2021-03-13 19:16:38] make sure you are opening a file thats there lol [2021-03-13 19:16:42] 17 [2021-03-13 19:16:45] yeah I am [2021-03-13 19:17:03] anwhats errno 17 in the linux headers? [2021-03-13 19:17:19] i shud implement .errno :) [2021-03-13 19:17:28] file exists [2021-03-13 19:17:33] that'ts the error [2021-03-13 19:17:37] really makes you think [2021-03-13 19:17:45] #define EEXIST 17 /* File exists */ [2021-03-13 19:17:51] yoy were trying to create without trunc [2021-03-13 19:17:59] you [2021-03-13 19:18:01] yeah lemme try a non existant file [2021-03-13 19:18:05] ⇐ f-a quit (~f-a@151.44.11.89): Quit: leaving [2021-03-13 19:18:05] ya [2021-03-13 19:18:31] now I got 3 [2021-03-13 19:18:34] int open(const char *pathname, int flags); [2021-03-13 19:18:56] you need to pass correct flags for the 2 parameter verson of open [2021-03-13 19:19:00] thats our bug [2021-03-13 19:19:19] indeed [2021-03-13 19:19:38] man 2 open helps [2021-03-13 19:19:48] same with all syscalls [2021-03-13 19:19:57] → f-a joined (~f-a@151.44.11.89) [2021-03-13 19:20:08] till the man page says only "you do not need to know this" [2021-03-13 19:20:28] which it occasionally does [2021-03-13 19:20:30] yeah the man pages don't specify the flag values do they [2021-03-13 19:20:44] no just their names [2021-03-13 19:20:46] lol [2021-03-13 19:20:52] gotta love it [2021-03-13 19:21:15] eventually they will be defined in x4 [2021-03-13 19:21:24] The argument flags must include one of the following access [2021-03-13 19:21:26] modes: O_RDONLY, O_WRONLY, or O_RDWR. [2021-03-13 19:21:27] when i can do it sanely [2021-03-13 19:21:43] so yeah without those flags it will fail [2021-03-13 19:21:50] yup [2021-03-13 19:22:10] i'll just steal them from gforth wait [2021-03-13 19:22:15] lol [2021-03-13 19:22:44] r/w is 2, r/o is 0 (??), w/o is 4 [2021-03-13 19:22:48] there you go [2021-03-13 19:24:06] bit positons or values? [2021-03-13 19:24:12] values [2021-03-13 19:24:44] that's for x86 linux, prob diff for others idk [2021-03-13 19:24:53] asm-generic/fcntl.h:#define O_RDONLY 00000000 [2021-03-13 19:24:56] looks right to me [2021-03-13 19:25:12] seems to be the same for x64 [2021-03-13 19:25:22] good stuff [2021-03-13 19:26:18] the scary part will bewhen i try to create all those constants used in calls lol [2021-03-13 19:26:37] pad $5413 0 drop i know that one is a tc-gets [2021-03-13 19:26:54] tioc gets ? i ferget what they are called [2021-03-13 19:26:57] byt thats what it is [2021-03-13 19:27:28] those macros to define those values are not obfuscared, not even a little... honest!! [2021-03-13 19:28:02] yeah lmao now you see why gforth compiled to C [2021-03-13 19:28:39] but I mean why do you NEED ioctl? [2021-03-13 19:28:50] theres logic behind how those are defined [2021-03-13 19:29:01] to set terminal properties for example? [2021-03-13 19:29:17] "theres logic behind how those are defined [2021-03-13 19:29:19] " [2021-03-13 19:29:22] DOUBT that [2021-03-13 19:29:46] hmm what terminal properties do you wanna set [2021-03-13 19:29:48] actualy its very sound logic and not difficult to understnd but the macros that implement that logic are complificated [2021-03-13 19:30:01] maybe baud rate? [2021-03-13 19:30:06] maybe canonical or non canonical? [2021-03-13 19:30:16] yeah I hate the C preprocessor [2021-03-13 19:30:49] can't escape codes do some of that? [2021-03-13 19:31:34] ? [2021-03-13 19:32:19] https://en.wikipedia.org/wiki/ANSI_escape_code [2021-03-13 19:32:22] this is what I mean [2021-03-13 19:33:01] ig there's a lot those can't do [2021-03-13 19:33:31] those are how you do terminal cursor control and terminal attribute setting not how you set baud rates on consoles [2021-03-13 19:33:39] a console can be a terminal or it can be a serial port etc [2021-03-13 19:33:42] also, does x4 clear the stack by calling quit or something after running a file? [2021-03-13 19:34:22] one of the known bugs is how im clearing stacks in quit and abort [2021-03-13 19:34:26] quit is not clearing stacks at all [2021-03-13 19:34:30] abort clears both right now [2021-03-13 19:34:35] thats wrong kind of [2021-03-13 19:34:43] hmm so I run a file with -f [2021-03-13 19:34:56] but then when I get control of the stack it's empty [2021-03-13 19:35:04] even tho it wasn't at the end of the file [2021-03-13 19:36:16] did you abort? [2021-03-13 19:36:32] no I called the test word inside of the file [2021-03-13 19:36:35] and then the file ends [2021-03-13 19:36:40] so x4 gives me a prompt [2021-03-13 19:36:44] but the stack is empty [2021-03-13 19:36:53] even tho it wasn't empty when it finished reading the file [2021-03-13 19:36:57] you see what I mean? [2021-03-13 19:38:36] question: in gforth, how can i run a shell command like "tput lines" or "tput cols" and read it's output ? [2021-03-13 19:39:00] use the system word [2021-03-13 19:39:13] example: s" ls" system [2021-03-13 19:39:19] and it will print it out [2021-03-13 19:39:26] but u wanna save that output right? [2021-03-13 19:40:36] ⇐ mirrorbird quit (dwsjeid911@gateway/vpn/mullvad/dwsjeid911): Quit: Leaving [2021-03-13 19:40:42] super, thank you!! i have to look there. yes, i need the output [2021-03-13 19:40:56] yeah use see to read its source code [2021-03-13 19:41:12] sts-q: https://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Passing-Commands-to-the-OS.html [2021-03-13 19:41:24] read that, the gforth docs are actually really good [2021-03-13 19:42:26] i dont like the ANS way of doing stack commenting [2021-03-13 19:42:30] too verbose [2021-03-13 19:42:39] wdym mark4 [2021-03-13 19:42:43] c-addr? [2021-03-13 19:43:12] yup [2021-03-13 19:43:18] i just use ( a1 n1 --- ) [2021-03-13 19:43:41] better to say too much than too little, especially since you'll usually specifiy it in a written comment otherwise [2021-03-13 19:44:10] and i find the written comments to be more meaningufl [2021-03-13 19:44:31] or i can do ( flags fudge-factor address --- result ) [2021-03-13 19:44:33] idk I like it, a1 is very generic [2021-03-13 19:45:00] we all need some more fudge-factor in our lives [2021-03-13 19:45:28] or just fudge :) [2021-03-13 19:48:03] so is working? is that the takeway today? [2021-03-13 19:48:12] maybe :)( [2021-03-13 19:48:46] also not sure if you answered or not, is the stack supposed to clear when going from a file to the terminal prompt? [2021-03-13 19:49:05] → really2 joined (~justafrie@107.152.102.135) [2021-03-13 19:49:20] not unless theres an abort [2021-03-13 19:49:43] hmm that's not what i'm seeing [2021-03-13 19:49:44] when you do a ./extend if one of the extensions leaves something on the stack it stays there [2021-03-13 19:49:51] unless therse some other extension eating it lol [2021-03-13 19:50:13] depth = 0 [2021-03-13 19:50:23] thats why ./extend displays that when it finishes [2021-03-13 19:50:30] anything other than 0 is an error [2021-03-13 19:50:54] what I mean is I run "./x4 -f test.fs" and the last thing in the file is a .s [2021-03-13 19:51:15] it shows there are 4 things on the stack but when I get a prompt and do .s there are now 0 things on the stack [2021-03-13 19:51:30] oh. now you got me [2021-03-13 19:51:32] so between the file being interpreted and me getting a prompt the stack got cleared [2021-03-13 19:51:35] ive no idea if thats correct or not lol [2021-03-13 19:51:42] : ) [2021-03-13 19:51:51] gforth doesn't clear it [2021-03-13 19:51:58] im not even sure i intend a shebang script to end up in the forth prompt lol [2021-03-13 19:52:07] i think im expecting a bye as the last thing i the script [2021-03-13 19:52:08] if you wanna clear it you just call quit at the end of the file like I do for my text editor [2021-03-13 19:52:09] not sure [2021-03-13 19:52:23] ahah well that's how my editor works! [2021-03-13 19:52:51] I am calling this with -f in the terminal, not exactly a shebang but yes [2021-03-13 19:53:19] oh right [2021-03-13 19:53:25] yea thats should give you the prompt [2021-03-13 19:53:57] it does give me the prompt, but with a cleared stack : ( [2021-03-13 19:54:58] that might be a bug? :) [2021-03-13 19:55:28] a bug, in x4?! nooooo :0 [2021-03-13 19:55:30] how can it be [2021-03-13 19:58:31] i said MIGHT be! [2021-03-13 19:58:32] duh [2021-03-13 19:59:05] that's better, was getting worried there! [2021-03-13 20:00:30] ⇐ really2 quit (~justafrie@107.152.102.135): Remote host closed the connection [2021-03-13 20:00:52] also, my x4 starts with 4 items on the stack when running a file [2021-03-13 20:01:14] if I run a file with -f and that file calls .s I see 4 extra items on the stack [2021-03-13 20:01:58] those are gone when I reach the prompt, but so are all the stack items I wanted : ( [2021-03-13 20:03:43] [top->] -1081215674 -1 -1217126356 1 [<-bottom] [2021-03-13 20:04:15] that's what I see when I call .s from inside a file on what SHOULD be an empty stack [2021-03-13 20:04:49] the same does not happen if I launch x4 and then fload the same file [2021-03-13 20:05:00] in that case the stack is empty, as it should be [2021-03-13 20:05:24] and when it reaches the end of the file the stack is not cleared, it carries over [2021-03-13 20:34:39] I think mark4 is tired of my shit [2021-03-13 20:35:05] no lol im multi tasking [2021-03-13 20:35:14] im getting autotools working on my uCurses thing [2021-03-13 20:35:29] i been working on it all day and its been giving me the run around but i got it working now with help [2021-03-13 20:35:32] and am checking it in [2021-03-13 20:35:57] i never used to have these stack issues till i tried to implement a fix from veltas lol [2021-03-13 20:39:06] I just write Makefiles by hand, miss me with that bloated autotools shit [2021-03-13 20:39:22] what was the "fix" lmao? mark4 [2021-03-13 20:40:01] well my biggest problem was that when i ran make it built all the c files into .o files inside the src dir and then proceeded to attempt to compile all the .o files with the c compiler [2021-03-13 20:40:15] removing of -xc from the CFLAGS fixed that [2021-03-13 20:41:59] hmm, yep, what you get for not writing your Makefile by hand ;) [2021-03-13 20:54:34] hope I didn't startle you too much by wrecking x4 in a few ways, cya mark4 [2021-03-13 20:55:04] lol [2021-03-13 20:55:12] no its good. it needs some exercise lol [2021-03-13 20:55:24] I'll be back to probably break it again [2021-03-13 20:55:35] :) [2021-03-13 20:55:40] ever heard of technical debt? Yeah, i'm a technical debt collector [2021-03-13 20:55:58] lol [2021-03-13 20:56:17] ;) [2021-03-13 20:56:19] ⇐ neto quit (~neto@79.72.37.188.rev.vodafone.pt): Quit: leaving [2021-03-13 21:39:57] — Zarutian_HTC reads back a bit of the log [2021-03-13 21:40:59] ⇐ dave0 quit (~davezero@069.d.003.ncl.iprimus.net.au): Quit: dave's not here [2021-03-13 21:41:32] I do not even use make for that fcpu sim of mine, just one .c file [2021-03-13 21:42:41] and the build instruction is in a comment in it [2021-03-13 21:44:03] but then again I use an image file with the eForth variant I have adapted [2021-03-13 21:44:21] mark4: do you have a link to x4? [2021-03-13 21:47:51] → boru` joined (~boru@unaffiliated/boru) [2021-03-13 21:47:54] ⇐ boru quit (~boru@unaffiliated/boru): Disconnected by services [2021-03-13 21:47:57] * boru` → boru [2021-03-13 21:49:23] github.com/mark4th [2021-03-13 21:49:31] thers t4 in there, x4, x64 and uCurses :0 [2021-03-13 21:49:37] that last is the only non forth one lol [2021-03-13 21:50:31] x64 might have some bugs in some of its primitives or extensions [2021-03-13 22:04:34] ⇐ Zarutian_HTC quit (~bj@173-133-17-89.fiber.hringdu.is): Quit: Bye [2021-03-13 22:04:41] → Zarutian_HTC joined (~bj@173-133-17-89.fiber.hringdu.is) [2021-03-13 22:30:50] ⇐ sts-q quit (~sts-q@91.200.108.161): Ping timeout: 256 seconds [2021-03-13 22:31:23] ⇐ f-a quit (~f-a@151.44.11.89): Ping timeout: 260 seconds [2021-03-13 22:32:52] → f-a joined (~f-a@151.34.8.113) [2021-03-13 22:34:19] → sts-q joined (~sts-q@212.53.219.133) [2021-03-13 23:06:56] → mipri joined (~keru@min.minimaltype.com) [2021-03-13 23:08:19] is there a forth that can produce shared objects (.so, .dll) that other languages can load with a C FFI? [2021-03-13 23:08:51] → mirrorbird joined (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) [2021-03-13 23:39:31] that is a very non trivial thing to do :) [2021-03-13 23:39:39] but not impossible [2021-03-13 23:39:44] not sure of any that do it tho [2021-03-13 23:47:53] → m2rrorbird joined (dwsjeid911@gateway/vpn/mullvad/dwsjeid911) [2021-03-13 23:50:57] ⇐ mirrorbird quit (dwsjeid911@gateway/vpn/mullvad/dwsjeid911): Ping timeout: 246 seconds [2021-03-13 23:53:10] → gravicappa joined (~gravicapp@h109-187-223-212.dyn.bashtel.ru)