00:00:00 --- log: started forth/20.06.07 00:04:04 --- join: jedb joined #forth 00:23:08 --- join: rdrop-exit joined #forth 00:25:35 --- quit: jedb (Ping timeout: 246 seconds) 00:25:46 routeveg, the similarity is in the intent, to postpone the compile-time behavior 00:27:34 Good Morning 00:27:48 good afternoon 00:33:24 --- quit: dddddd (Ping timeout: 256 seconds) 00:34:24 how are ya? 00:35:40 ok, lazy Sunday, just relaxing, alternating between reading and videos 00:35:48 you? 00:37:08 trying to learn more about my Pinebook to see what I can do with it, and once it's a reasonable time I'll probably go hang out and grill out with some family 00:37:34 cool 00:38:13 Night shift makes my weekend schedule strange, so I've been up since 20:00 yesterday, it's now 3:37, and I'll probably be up until ~1:00 tomorrow 00:38:25 otherwise I get no human interaction on the weekend 00:38:40 wow 00:39:16 I'm young and healthy though, I can perform without sleep :) 00:40:15 But I am tiring of my job, I think I may try to get the education required to become an EMT or Paramedic when fall comes 00:44:43 going without sleep will really screw up your health in the long run 00:45:40 I consider isolation worse though, I basically have to choose between the two 00:51:09 that's life 00:51:19 --- join: jedb joined #forth 00:51:53 'tis 00:52:02 I'm not complaining 00:52:24 cool 00:52:43 --- join: jedb_ joined #forth 00:56:04 --- quit: jedb (Ping timeout: 256 seconds) 01:12:14 --- quit: iyzsong- (Ping timeout: 256 seconds) 01:26:33 --- join: iyzsong joined #forth 01:35:27 --- quit: _whitelogger (*.net *.split) 01:35:28 --- quit: a3f (*.net *.split) 01:36:45 --- join: a3f joined #forth 01:40:07 --- quit: Kumool (Quit: FreeZNC - Visit us! Server: chat.freenode.net Channel: ##bnc4you) 01:42:26 --- join: _whitelogger joined #forth 01:48:36 --- join: Kumool joined #forth 01:59:11 --- quit: jsoft (Ping timeout: 272 seconds) 02:16:36 --- quit: rdrop-exit (Quit: Lost terminal) 02:17:50 --- quit: crab1 (Quit: Connection closed) 02:27:07 --- join: crab1 joined #forth 02:31:51 --- quit: dys (Ping timeout: 246 seconds) 02:47:11 --- quit: crab1 (Quit: Connection closed) 03:21:56 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 03:23:28 --- join: iyzsong joined #forth 03:41:40 --- join: C-Keen joined #forth 04:24:16 --- join: dddddd joined #forth 05:18:53 --- quit: Zarutian_HTC (Ping timeout: 246 seconds) 05:28:20 --- join: Zarutian_HTC joined #forth 05:36:16 --- quit: iyzsong (Ping timeout: 256 seconds) 05:49:47 --- join: gravicappa joined #forth 06:23:26 --- quit: yunfan (Changing host) 06:23:26 --- join: yunfan joined #forth 06:39:59 tabemann: "I'm trying to implement the classic Forth vocabulary system, but I'm not sure how I can do it with immutable words" 06:40:06 What do you mean immutable words? 06:40:18 Words that aren't affected by FORGET or something? 07:42:32 --- quit: gravicappa (Ping timeout: 260 seconds) 07:48:57 --- quit: karswell_ (Ping timeout: 246 seconds) 08:15:22 --- quit: Zarutian_HTC (Ping timeout: 258 seconds) 08:17:51 --- join: dys joined #forth 08:27:41 with forget theres usally a word called fence that points to a low waterline maker. only words defined after the word pointed to by fence can be forgotten 08:28:20 the word "empty" forgets every word defined above fernce 08:32:33 --- quit: mark4 (Remote host closed the connection) 08:34:46 I don't like the definition of COMPARE in standard forth 08:34:57 It's trying too hard to be strcmp 08:35:34 And strcmp() makes perfect sense for null-terminated strings, not for sized memory regions 08:57:21 --- join: X-Scale` joined #forth 08:57:49 --- quit: X-Scale (Ping timeout: 272 seconds) 08:58:22 --- nick: X-Scale` -> X-Scale 09:03:31 --- join: Zarutian_HTC joined #forth 09:28:36 --- quit: jedb_ (Ping timeout: 240 seconds) 10:16:54 --- join: gravicappa joined #forth 10:20:39 --- join: andrei-n joined #forth 11:04:02 --- join: xek_ joined #forth 11:12:10 --- quit: gravicappa (Read error: Connection reset by peer) 11:17:40 --- join: gravicappa joined #forth 11:29:25 veltas 11:29:36 I mean words written into flash 11:29:49 anyways, I've decided on doing it a different way 11:29:57 by tagging each word with a wid 11:30:20 s/wid/wordlist id 11:30:58 about standard forth 11:31:23 I personally don't care about it much; I just implement forth as fits my purposes 11:32:01 --- join: TCZ joined #forth 11:32:50 tp: i'm back working on my stlink console 11:33:32 cool 11:33:51 to all those using forth on microcontrollers: what featuress do you want/need from your terminal program? 11:34:00 *features 11:34:08 what'd be cool: 11:34:10 history 11:34:18 line editing (think readline) 11:34:39 loading data from files (including recursively, think #include, #require) 11:35:04 like e4thcom? 11:35:16 yeah, but better line editing that e4thcom 11:35:44 i never got e4thcom working properly for mecrisp-st 11:35:58 but i attempted to use the freebsd linux abi 11:36:16 to run e4thcom on freebsd instead of linux 11:36:24 I use e4thcom on linux for zeptoforth in noforth mode 11:37:49 my main gripe about e4thcom is that it has as low limit on the lengths of paths entered or the depth of history 11:37:53 would it be useful to reset the microcontroller through the stlink even if it gets stuck on BEGIN AGAIN 11:38:06 yes 11:38:23 to avoid wearing out the reset button on the board 11:38:36 and riping out wires on breadboards 11:38:44 on the way to the reset button 11:40:05 the padding requirements for fast transfers are annoying 11:43:17 but considering that you can get much better performance than serial, from what it seems, I'd say it's worth it 11:43:47 sure 11:44:12 did you take a look at my first prototype? 11:44:35 it was as fast a 115200 baud serial for most things 11:45:57 no I din't 11:52:36 https://gist.github.com/Crest/4661650057935952013dc092573c7f46 11:52:44 this the whole forth side 11:53:12 for each direction (rx, tx) there is a single byte buffer and a flag 11:53:47 one flag is negated so make the start value for the 32bit word all zeroes 11:54:40 you could add : init swd-init ; to set the console one automatically 11:55:01 the host has to know the memory address and just polls it with a single 32bit read 11:55:42 the bytes can be changed atomically with 8bit writes 11:55:54 cool 11:56:04 which allows this naturally aligned 32bit word act as two 1 byte ring buffers 11:56:51 this results in ping-pong processing between the forth and terminal program 11:57:18 and pc hardware, firmware and software aren't optimized for low latency 11:57:45 my second design uses a rather large 256 byte ring buffer per direction 11:58:05 yes this uses 512 + 4 byte sram 11:58:22 if it works well i will experiment with smaller buffers 11:58:49 until i've found the required queue depth to decouple both well enough 12:01:17 back 12:01:52 circular buffers are always a good thing 12:02:20 I'd say they're one of my most favorite data structures 12:07:54 they're a very useful datastructure and it looks like memory model is strong enough to enable their use as single produce, single consumer queues 12:11:50 cool 12:21:39 okay, revised my wordlist implementation a bit (combined the RAM and flash orders into a single order), gonna try again to see how it turns out 12:22:57 --- quit: TCZ (Quit: Leaving) 12:25:04 do you support forgetram? 12:25:50 just reboot 12:26:12 which is equivalent aside from that it resets the hardware too 12:26:36 i have a working interactive console 12:27:05 I could implement forgetram though 12:34:27 the irony is that I effectively had a working forgetram in the past, but got rid of it 12:34:33 I called it "reboot" 12:34:37 why? 12:34:42 (get rid of it) 12:35:04 because I was having trouble with the fact that it wasn't resetting the hardware 12:35:39 it'd restart, and re-call init, but because the hardware wasn't reset it'd get confused and cause the board to lock up 12:38:41 damn why are c apis so ugly: https://blog.louie.lu/2016/08/22/linux-time-difference-in-nano-second-persision/ 12:39:06 why can't they just use a simple 64bit or 128bit int 12:39:50 macos even includes time operating on 64bit floating point numbers containing the seconds since unix epoch 12:39:59 *time operations 12:40:28 that's because not all archs can be relied upon to have a 64bit or especially a 128bit int 12:40:59 name one unix without a 64bit integer type 12:41:16 I wouldn't know offhand 12:41:27 and one 64bit unix without a 128bit type hidden somewhere in the compiler 12:41:50 both gcc and clang have 128 bit int support on all 64bit platforms i've encountered 12:42:02 128bit ints are typically only available for archs that have 64bit words natively 12:42:12 tabemann: "I personally don't care about it much; I just implement forth as fits my purposes" can't argue with that approach 12:44:29 Measuring time on a computer is usually a multifaceted approach 12:45:19 especially on an OS like linux 12:45:39 like when programming with linux I like monotonic time, even though it doesn't match the wall-clock time 12:45:53 because it can be guaranteed to always increase, never decrease 12:45:58 unlike real-time time 12:46:13 veltas: that's why there are multiple clocks 12:46:35 in this case i care about the uptime clock 12:47:27 i want to reduce the polling frequency depending activity 12:47:52 both linux and freebsd implement clock_gettime(CLOCK_UPTIME_FAST) with a vdso 12:48:35 so reading the uptime on each polling itteration doesn't add any syscalls to the loop 12:54:19 oh, so the kernel periodically updates a register in userspace with the uptime? 12:54:29 no 12:54:32 so you can access it without the overhead of an extra system call? 12:55:09 the kernel maps a page with various useful information into the process addressspace 12:55:17 of course 12:55:34 at least one per process and a global one 12:55:58 the global one contains things like clocks and offsets to them 12:56:22 the per process one includes the process id and a few other things 12:56:53 the kernel updates the shared memory as often enough 12:56:55 tabemann: I'm using a circular buffer to save keyboard input on my forth 12:57:11 this is cheaper than using syscalls to read the data 12:57:35 yeah 12:57:51 veltas: I'm using circular buffers to buffer serial input and output in zeptoforth 12:58:11 Well we are using them for sort of the same things then 12:58:43 this is for an intermediate state between their being received or sent and their actual consumption 12:59:18 Yeah in my forth you receive keyboard input from the circular buffer with EKEY 13:00:50 There is no waiting for output though, straight to the screen it goes 13:02:21 this was buffering so that more data could be received or sent per USART interrupt 13:02:32 making things more efficient and reducing the chance of lost data 13:02:50 Yep same reason here 13:02:53 Different interrupt 13:03:15 Mine is because otherwise you could literally miss a key press 13:04:02 I have a 32-bit uptime counter that gets incremented every 20ms, during an interrupt, and that also calls the keyboard scanning routine that buffers keypresses 13:04:44 It occurs just before every frame, that's the only interrupt I have to work with 13:05:36 yeah, the interrupt I'm using is trigerred by input or being ready for output 13:07:05 *triggered 13:07:54 --- quit: X-Scale (Ping timeout: 256 seconds) 13:08:18 --- join: X-Scale` joined #forth 13:08:45 --- nick: X-Scale` -> X-Scale 13:16:31 --- nick: cmtptr_ -> cmtptr 13:19:45 --- join: TCZ joined #forth 13:29:19 --- quit: dys (Ping timeout: 256 seconds) 13:45:18 --- quit: gravicappa (Ping timeout: 256 seconds) 13:48:26 --- quit: xek_ (Ping timeout: 256 seconds) 14:02:59 tp: the basic interactive usage works 14:03:12 next step: cleanup and refactoring 14:28:13 --- quit: TCZ (Quit: Leaving) 14:51:04 crest, awesome news, I'll have to try it myself 14:51:22 tp: after that i want to add file upload 14:51:26 crest, yours is the first 'new thing' I've seen for Mecrisp-Stellaris 14:51:37 performance is good but i haven't measured it yet 14:52:13 for a fair comparison i would have to add similar sized ringbuffers to the serial 14:52:19 but i don't care about fairness :-P 14:52:51 crest, to hell with fairness, may the best system win! 14:53:12 the best system could be uart with ack/nak and buffering 14:53:50 i added an adaptive poll rate to the terminal program 14:54:11 --- quit: jackdaniel (*.net *.split) 14:54:11 --- quit: Vedran (*.net *.split) 14:54:12 --- quit: jhei (*.net *.split) 14:54:32 --- join: jackdaniel joined #forth 14:54:32 --- join: Vedran joined #forth 14:54:32 --- join: jhei joined #forth 14:54:48 if nothing has been transfered in a while it adds a usleep() 14:55:30 --- quit: MrMobius (*.net *.split) 14:55:30 --- quit: deesix (*.net *.split) 14:55:30 --- quit: lonjil2 (*.net *.split) 14:55:30 --- quit: Chobbes (*.net *.split) 14:55:30 --- quit: WilhelmVonWeiner (*.net *.split) 14:55:30 crest, what about hardware handshaking, that's very fast and why I use it ? 14:55:49 --- join: MrMobius joined #forth 14:55:49 --- join: deesix joined #forth 14:55:49 --- join: lonjil2 joined #forth 14:55:49 --- join: Chobbes joined #forth 14:55:49 --- join: WilhelmVonWeiner joined #forth 14:55:58 hardware handshaking needs more pins 14:56:07 --- quit: MrMobius (Max SendQ exceeded) 14:56:10 crest, thats not a problem 14:56:16 --- quit: jimt[m] (*.net *.split) 14:56:17 --- quit: siraben (*.net *.split) 14:56:31 crest, we live in a age where mcus have up to 180 pins 14:56:35 --- join: jimt[m] joined #forth 14:56:35 --- join: siraben joined #forth 14:56:39 no but having just data, clock and gnd is nice 14:56:46 --- quit: siraben (Max SendQ exceeded) 14:57:10 'nice' doesnt win, 'best' wins 14:57:13 --- quit: jimt[m] (Ping timeout: 252 seconds) 14:57:21 and ack/nak solves other problems as well (stop on first error) 14:57:21 --- quit: Blue_flame (Ping timeout: 246 seconds) 14:57:46 "good enough" wins 14:58:04 --- join: MrMobius joined #forth 14:58:13 --- quit: Keshl (*.net *.split) 14:58:32 --- join: Keshl joined #forth 14:58:54 --- quit: Keshl (*.net *.split) 14:58:55 --- quit: deesix (*.net *.split) 14:58:55 --- quit: lonjil2 (*.net *.split) 14:58:55 --- quit: Chobbes (*.net *.split) 14:58:56 --- quit: WilhelmVonWeiner (*.net *.split) 14:58:56 --- quit: jackdaniel (*.net *.split) 14:58:56 --- quit: Vedran (*.net *.split) 14:58:56 --- quit: jhei (*.net *.split) 14:58:57 --- quit: X-Scale (*.net *.split) 14:58:57 --- quit: rpcope (*.net *.split) 14:58:57 --- quit: mjl (*.net *.split) 14:58:57 --- quit: Lord_Nightmare (*.net *.split) 14:58:57 --- quit: cmtptr (*.net *.split) 14:58:57 --- quit: pareidolia_ (*.net *.split) 14:58:58 --- quit: catern (*.net *.split) 14:58:58 --- quit: tabemann (*.net *.split) 14:58:59 --- quit: irsol (*.net *.split) 14:58:59 --- quit: koisoke (*.net *.split) 14:58:59 --- quit: klys (*.net *.split) 14:58:59 --- quit: proteusguy (*.net *.split) 14:59:00 --- quit: tp (*.net *.split) 14:59:00 --- quit: routeveg (*.net *.split) 14:59:00 --- quit: presiden (*.net *.split) 14:59:00 --- quit: boru (*.net *.split) 14:59:00 --- quit: Zarutian_HTC (*.net *.split) 14:59:00 --- quit: C-Keen (*.net *.split) 14:59:00 --- quit: remexre (*.net *.split) 14:59:00 --- quit: dzho (*.net *.split) 14:59:01 --- quit: pointfree (*.net *.split) 14:59:01 --- quit: dddddd (*.net *.split) 14:59:01 --- quit: neuro_sys (*.net *.split) 14:59:01 --- quit: rann (*.net *.split) 14:59:01 --- quit: bluekelp (*.net *.split) 14:59:01 --- quit: djinni (*.net *.split) 14:59:01 --- quit: nonlinear (*.net *.split) 14:59:02 --- quit: guan (*.net *.split) 14:59:02 --- quit: cp- (*.net *.split) 14:59:02 --- quit: ornxka (*.net *.split) 14:59:02 --- quit: cantstanya (*.net *.split) 14:59:02 --- quit: _whitelogger (*.net *.split) 14:59:02 --- quit: a3f (*.net *.split) 14:59:02 --- quit: tangentstorm (*.net *.split) 14:59:03 --- quit: andrei-n (*.net *.split) 14:59:03 --- quit: APic (*.net *.split) 14:59:03 --- quit: tolja (*.net *.split) 14:59:03 --- quit: crc (*.net *.split) 14:59:04 --- quit: rprimus (*.net *.split) 14:59:04 --- quit: ecraven (*.net *.split) 14:59:04 --- quit: crest (*.net *.split) 14:59:04 --- quit: jn__ (*.net *.split) 14:59:04 --- quit: heredoc (*.net *.split) 14:59:04 --- quit: MrMobius (*.net *.split) 14:59:04 --- quit: ovf (*.net *.split) 14:59:04 --- quit: yunfan (*.net *.split) 14:59:04 --- quit: arrdem (*.net *.split) 14:59:05 --- quit: patrickg (*.net *.split) 14:59:05 --- quit: Kumool (*.net *.split) 14:59:05 --- quit: nmz (*.net *.split) 14:59:05 --- quit: KipIngram (*.net *.split) 15:00:27 --- join: Keshl joined #forth 15:00:27 --- join: MrMobius joined #forth 15:00:27 --- join: WilhelmVonWeiner joined #forth 15:00:27 --- join: Chobbes joined #forth 15:00:27 --- join: lonjil2 joined #forth 15:00:27 --- join: deesix joined #forth 15:00:27 --- join: jhei joined #forth 15:00:27 --- join: Vedran joined #forth 15:00:27 --- join: jackdaniel joined #forth 15:00:27 --- join: X-Scale joined #forth 15:00:27 --- join: andrei-n joined #forth 15:00:27 --- join: Zarutian_HTC joined #forth 15:00:27 --- join: dddddd joined #forth 15:00:27 --- join: C-Keen joined #forth 15:00:27 --- join: Kumool joined #forth 15:00:27 --- join: _whitelogger joined #forth 15:00:27 --- join: a3f joined #forth 15:00:27 --- join: remexre joined #forth 15:00:27 --- join: routeveg joined #forth 15:00:27 --- join: boru joined #forth 15:00:27 --- join: proteusguy joined #forth 15:00:27 --- join: rpcope joined #forth 15:00:27 --- join: rprimus joined #forth 15:00:27 --- join: cantstanya joined #forth 15:00:27 --- join: pointfree joined #forth 15:00:27 --- join: ovf joined #forth 15:00:27 --- join: guan joined #forth 15:00:27 --- join: mjl joined #forth 15:00:27 --- join: yunfan joined #forth 15:00:27 --- join: Lord_Nightmare joined #forth 15:00:27 --- join: dzho joined #forth 15:00:27 --- join: cmtptr joined #forth 15:00:27 --- join: pareidolia_ joined #forth 15:00:27 --- join: neuro_sys joined #forth 15:00:27 --- join: tabemann joined #forth 15:00:27 --- join: ecraven joined #forth 15:00:27 --- join: tangentstorm joined #forth 15:00:27 --- join: tp joined #forth 15:00:27 --- join: crest joined #forth 15:00:27 --- join: jn__ joined #forth 15:00:27 --- join: arrdem joined #forth 15:00:27 --- join: APic joined #forth 15:00:27 --- join: cp- joined #forth 15:00:27 --- join: tolja joined #forth 15:00:27 --- join: rann joined #forth 15:00:27 --- join: bluekelp joined #forth 15:00:27 --- mode: kornbluth.freenode.net set +v proteusguy 15:00:27 --- join: ornxka joined #forth 15:00:27 --- join: catern joined #forth 15:00:27 --- join: djinni joined #forth 15:00:27 --- join: presiden joined #forth 15:00:27 --- join: nmz joined #forth 15:00:27 --- join: irsol joined #forth 15:00:27 --- join: nonlinear joined #forth 15:00:27 --- join: klys joined #forth 15:00:27 --- join: koisoke joined #forth 15:00:27 --- join: patrickg joined #forth 15:00:27 --- join: heredoc joined #forth 15:00:27 --- join: crc joined #forth 15:00:27 --- join: KipIngram joined #forth 15:00:27 --- mode: kornbluth.freenode.net set +vv crc KipIngram 15:00:27 not at the races :) 15:00:27 it's interesting how software people see software as a solution and hardware people see hardware as a solution 15:01:07 hardware flow control solves on problem perfectly 15:01:24 it's just that there are other problems that need solving as well 15:04:26 yes, lots of problems to solve 15:05:01 unless you want to add an other pin for compiler errors 15:05:27 at that point why not use a parallel data bus to upload programs? 15:05:30 scnr 15:07:02 probably because serial is fast enough for me 15:07:39 if serial wasnt fast enuf, I probably would look at serial 15:08:05 I'm using a 32 pin mcu, so at some point the number of pins is a issue 15:08:41 the mcu is tiny tho, 5x5x1.2 mm in size 15:18:06 --- join: dave0 joined #forth 15:22:08 --- join: siraben joined #forth 15:24:59 --- join: jimt[m] joined #forth 15:33:19 seems like my ring buffer size isn't excessive 15:33:47 executing words reached a queue depth of at least 216 15:34:21 i really hoped to reduce the sram consumption without reduction in throughput 15:35:27 .oO( does how hard would it be to write a firmware that speaks usb modem to the pc and swd to the blue pill? ) 15:35:35 s/does// 15:36:45 so modem for rx and swd for tx ? 15:37:26 to use an other stm32 (or even the one on those stlinkv2 clones) 15:37:31 and replace its firmware 15:37:33 we have a forth usb driver for the blue pill, I use it in my diags binary (300 downloads) 15:38:26 i know i managed to cobble something together from the old embello code that works on mecrisp stellaris 2.5.3 15:38:32 if you replace the fw on a stlinkv2 clone youll probably need to solder some wires to it 15:38:48 sure 15:39:14 and i would have to come up with a way to set the memory address 15:39:39 so use another stm32 to do what exactly ? 15:39:40 either inband signaling or an other usb endpoint 15:40:02 to just act like a generic usb modem to the host 15:40:23 and poll the ringbuffer via swd 15:40:31 --- join: reepca joined #forth 15:40:43 why not just use a usb-3.3v serial dongle like I do ? 15:40:44 instead of going through the libstlink -> libusb -> usb -> stlink firmware -> swd 15:41:09 I like the idea of not needing software on the pc 15:41:37 especially as IM looking at openindiana as a os for my workstation atm 15:42:41 do you want to play with my fast prototype? 15:42:43 ahh I see, usb to the 'dongle' and swd from the dongle to the stm32 target ... I like it 15:42:47 sure 15:43:07 do you have a freebsd system, a blue pill, a usb serial adapter and stlinkv2? 15:43:18 yes 15:43:50 FreeBSD gronk 11.2-RELEASE-p9 FreeBSD 11.2-RELEASE-p9 #0: Tue Feb 5 15:30:36 UTC 2019 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 15:44:04 that system is end of life but okay 15:44:17 it's a bit old but about to upgrade, problem is it's still too damn useful 15:44:38 lets hope pkg install -y stlink works 15:44:46 or do you have it already installed? 15:44:54 past end of life actually, but that doesnt stop it working 15:45:01 I already have stlink installed 15:45:05 ok 15:45:10 I use it all the time 15:45:15 have for years 15:45:55 it may jump from FreeBSD 11.2 to openindiana tho 15:46:51 why? 15:46:53 but if that happens I'll keep a freebsd 12.1 around on a small pc anyway 15:47:03 I like solaris 15:47:40 SunOS openindiana 5.11 illumos-6523a3aa7f i86pc i386 i86pc 15:47:40 but with joyent dead there is no opensource solaris left 15:48:03 thats such a shame, I weep for joylent 15:48:51 i think there is enuf opensource solaris left to see me to retirement 15:49:43 https://github.com/Crest/swdcom 15:49:49 cool 15:50:09 the code is just a proof of concept at this stage 15:50:18 but it does work 15:50:19 sure 15:50:27 I'll try it now 15:50:40 to install it flash a stm32f103-ra image on the blue pill 15:50:58 have one already 15:50:58 slowly upload bootstrap.fs 15:51:16 slowly ? 15:51:24 I have RTS handshaking on mine 15:51:35 in that case not so slowly :-P 15:51:46 460800 baud :) 15:52:36 afterward the system prints the base address at reset to the serial console 15:52:45 * tp removes his touch sensor F0 project from the dev area 15:57:42 you have to any problems feel free to ask 15:58:17 okies I'm still setting up atm 16:01:30 after bootstrap.fs has been loaded the forth system should tell you the buffer address on the serial console 16:02:01 almost ready I had a loose wire on the bluepill 16:02:10 e.g. "The swd buffer address is: 20004D34" 16:08:18 can I loose all your 72mhz and rcc stuff ? 16:08:37 I already have my board running at 72mhz 16:09:19 looks like I only need "here 256 2* cell+ buffer: swd 0 swd ! " onwards ? 16:10:34 sure 16:11:07 i just wanted to test system at full speed instead of 1/9 of that 16:11:43 no problemo 16:11:49 ok here goes 16:12:38 swd2 requires access to the ugen device 16:15:01 The swd buffer address is: 20004D38 16:15:26 run sudo usbconfig list 16:16:01 and sudo chmod 666 /dev/ugen$XXX allow all users access to the device 16:16:17 i have that already 16:16:17 this can be automated with devd 16:16:53 in that case you can run ./swd 20004D38 16:17:07 or ./swd2 16:18:25 did it work? 16:22:21 bear with me a sec I have some issues here 16:22:33 anything i can help with? 16:27:56 no, it's the damn loose cable again 16:28:14 ok all is working but not sure if Im at 72mhz 16:28:20 ill try it anyway 16:28:55 that's one of the nice things about this approach 16:29:06 you don't have to know the frequency 16:29:29 the stlink an hardware take care of of that for you 16:29:49 hmm I dont have "swd" 16:30:19 you have to compile the c code 16:30:22 perhaps my version of swdlink is too old 16:30:26 oh! 16:30:31 ok off to do that 16:30:43 the compiler invocation is in a comment 16:31:33 so far i only tested the code on freebsd 12.1/amd64 but it should be fairly portable 16:31:44 problems, quite a few errors 16:31:47 tp@gronk:~/mecrisp-stellaris/f103-swdcom/swdcom-master% gcc swd2.c -o swd 16:31:48 swd2.c:(.text+0x39): undefined reference to `stlink_close' 16:32:10 i probably dont have the stlink dev stuff 16:32:14 you do 16:32:26 because they're part of the stlink port 16:32:35 but you didn't tell the compiler to look for them 16:32:38 so whats the problem ? 16:32:42 ahh 16:32:54 well you didnt include a makefile;P 16:33:01 / build with: cc -O0 -g -std=c99 -Wextra -I/usr/local/include -L/usr/local/lib -o swd2 swd2.c -lstlink-shared 16:33:21 is the second line of the c file 16:33:47 and yes i should include Makefile 16:33:52 that did it :) 16:34:15 oops, I didnt read the c file 16:34:34 don't worry it only installs a crypto miner 16:35:02 hahh 16:35:33 have you seen the electricity costs here ! 16:35:49 i have not 16:36:33 if you want cheap power move to mongolia (state regulated / sponsored power) 16:37:04 tp@gronk:~/mecrisp-stellaris/f103-swdcom% ./swd2 20004D38 16:37:05 2020-06-08T09:36:30 WARN usb.c: Couldn't find any ST-Link/V2 devices 16:37:05 Failed to open the debugger. 16:37:05 Abort (core dumped) 16:37:25 did you attach a stlink v2 via usb? 16:37:30 no 16:37:51 you have to connect a stlink v2 (clone) via usb to the blue pill 16:37:52 thats a bit of a problem 16:37:57 why? 16:38:27 through the four pins on one of the short sides of pcb 16:38:30 i dont actually have a bluepill but I have a very similar board with jtag 16:38:48 do you want me to lookup the pins for you? 16:39:25 it also has the swd pins somewhere, I just have to use a disco board swd to provide the facility 16:39:31 no I'm cool I have all that info 16:39:38 https://os.mbed.com/media/uploads/hudakz/stm32f103c8t6_pinout_voltage01.png 16:39:48 you need gnd, dclk, dio 16:39:57 reset ? 16:40:05 reset? 16:40:14 i haven't implemented reset yet 16:40:14 swd had a /nrst 16:40:39 i didn't connect to the reset pin 16:41:54 ok board ot and looking up connections 16:41:57 out 16:45:25 there is a bug in my bootstrap.fs it doesn't initialize the ring buffer indicies on reset causing the console to transfer random data on reset 16:45:42 i already pushed the fix to github.com 16:46:12 just a 0 swd ! before swd-init in init 16:48:23 --- quit: reepca (Ping timeout: 272 seconds) 16:56:37 tp@gronk:~/mecrisp-stellaris/f103-swdcom% ./swd2 20004D38 16:56:38 Failed to set SWD clock rate to 4MHzAbort (core dumped) 16:56:58 strange 16:57:07 I'm using the swd programmer section of a F0 Disco board 16:57:17 --- join: TCZ joined #forth 16:57:17 maybe it doesn't support 4mhz 16:57:19 it's a V2 SW 16:57:29 SWD 16:57:44 you can comment out the code increase the clock rate vom 1,8MHz to 4MHz 16:57:57 let me turn it into a warning 16:58:05 okies 16:58:36 these cores are filling up my pc, I only have 1.4TB left! 16:58:47 haha 16:59:03 this is an early prototype i wanted core files for debugging 16:59:10 of course :) 16:59:29 this is fun, thanks for letting try your early work 17:00:07 the STM gear has a F103 in the SWD programmer section 17:00:36 please check github again 17:00:54 okies 17:02:12 what do I need to change the c file ? 17:03:56 just download the latest version 17:04:21 i did, I see the C file is larger 17:04:31 https://github.com/Crest/swdcom/commit/29649e8c91e7008dd9b978a9cc6d57d93c6350f7 17:04:43 the important part is in line 44 17:04:49 i just removed the abort() 17:05:02 allowing the programm to continue 17:05:32 if that's not enough just remove the call to stlink_set_swdclk() 17:05:32 WARNING: Failed to set SWD clock rate to 4MHz. 17:05:32 ���FE�I��� 17:05:32 ������3D�9ȫ�d��/ܯ-8��Q��h� 17:05:42 did you use the latest bootstrap.fs 17:05:46 oh, is it expecting 115200 baud ? 17:05:50 no 17:06:04 no you didnt tell me to 17:06:10 ok ill do that now 17:06:20 the previous version of bootstrap.fs didn't initialize the ring buffer indicies 17:06:38 I'm not going to try and understand all your code, thats programmer stuff, Im a tech remember 17:06:45 https://github.com/Crest/swdcom/commit/3bb6adf2409409e94e5b648ac07ebba84a531286 17:07:07 I just dl the zipfile 17:07:21 this sets the read and write indicies for transmit and receive to all zeroes 17:07:32 --- join: reepca joined #forth 17:07:39 the variable contains four indicies (one per byte) 17:07:42 the zipfile will have your latest commiut tho ? 17:07:51 commit 17:07:56 the c file did 17:08:21 just run git clone https://github.com/Crest/swdcom.git 17:08:43 that creates a directoy swdcom containing the whole repo 17:09:09 and in the future you can just fetch the latest version by running git pull in the directory 17:10:40 ok 17:10:59 hmm getting rid of your swdcom from the target isnt easy! 17:11:21 eraseflash 17:12:08 it's a turnkey application of sort 17:12:18 I cant reset only gives "The swd buffer address is: 20004BE0" 17:12:30 the terminal is locked out 17:12:44 there is no easy way out unless you get the new console running 17:13:00 thats why I said "getting rid of your swdcom from the target isnt easy!" 17:13:23 i could write some hack into swd-key? to fall back to serial if serial-key? returns true 17:13:25 --- quit: reepca (Ping timeout: 260 seconds) 17:13:33 I reflashed Mecrisp-Stellaris but swdcom remains, I need to clear all the flash 17:13:35 but that would slow down its critical path a little 17:13:44 no, Im ok 17:13:55 i just have to erase all the flash 17:14:15 the old bootstrap.fs still kinda works 17:14:25 it just displays garbage on reset 17:14:51 it is unlikely to mess up the forth system with the garbage input 17:14:55 but it is possible 17:15:04 the output just confuses the human user 17:15:08 i get the "The swd buffer address is: 20004BE0" on reset 17:15:36 did you erase the flash? 17:16:22 if you have a stlink v2 attached you could just use it to erase all flash 17:16:37 and flash a fresh image 17:17:07 just erased the flash 17:17:19 new image installed 17:18:15 but adding a fallback to serial is a good idea 17:18:28 --- quit: andrei-n (Quit: Leaving) 17:23:52 SUCCESS!! 17:23:55 tp@gronk:~/mecrisp-stellaris/f103-swdcom% ./swd2 20004BE0 17:23:55 WARNING: Failed to set SWD clock rate to 4MHz. 17:23:55 ok. 17:23:55 ok. 17:24:14 2 2 + . 4 ok. 17:24:41 pretty fast 17:24:59 run words 17:25:28 i did, it's in the same ballpark as my system 17:25:37 under 1 second 17:25:53 I have systick running on this so I could time it 17:26:04 pretty cool! 17:26:25 a terminal via SWD, you are a trendsetter crest! 17:26:59 now i just have to clean up the code and add file uploads 17:27:06 and a log ? 17:27:20 afterward i can look into non essiential features 17:27:26 maybe add readline support 17:27:31 I use the screen log to build premade binaries 17:27:42 oh yeah, readline would be awesome 17:28:05 maybe even a hack to extract the word list for tab completion 17:28:13 if one wants to build a premade binarie with all the added words, a log is needed 17:28:59 thats how I made my bluepill diags binaries (over 300 downloads now) 17:29:23 a stripped down words could dump just the names 17:29:28 I convert the dictionary to intel hex and dump it 17:29:37 at startup 17:30:05 and learn new words during idle 17:30:34 e.g. after 100ms without any other transfers fetch the current word list 17:31:09 or hardcode a list of defining words like : , variable and constant 17:31:24 i already just dump the nales in a 4 column list 17:31:29 names 17:31:56 --- Flash Dictionary --- 17:31:56 72mhz u.1 u.2 u.3 17:31:56 u.4 u.8 h.1 h.2 17:31:56 h.3 h.4 h.8 hex.1 17:31:56 hex.2 hex.3 hex.4 u.ns 17:31:58 etc 17:32:00 but how awesome would it be to have tab completion on the console? 17:32:08 rcc- 17:32:11 it would be awesome! 17:32:38 and readline allows the application to provide its own tab completion callback 17:32:57 I have it in my editor with vim completion but in the terminal would be awesome 17:32:59 --- join: reepca joined #forth 17:33:32 i want to split whole thing into a unix domain server and client 17:33:39 Im so tired of retyping everything in the console as screen has no readline 17:33:50 thats a good idea 17:33:59 the server would connect to the stlink and bind a unix domain socket 17:34:04 not that I type much in the console 17:34:16 clients could either attach to the console 17:34:27 or send a files to upload 17:34:38 but not both ? 17:35:05 i see no reason to add the code to prevent them from doing that 17:35:13 can your client receive as it uploads so vim quickfix would work ? 17:35:27 ? 17:35:33 having the errors in the source would be crazy 17:35:55 i don't know what quickfix requires 17:36:16 nothing special, it works with gcc 17:36:47 you name the application and it inserts the receive errors as they occcur 17:37:03 Ive not used it myself but I looked into it 17:37:12 the uploads could be displayed to console clients 17:37:41 so you could connect with swd --interactive 17:37:50 and run swd --upload foo.fs 17:37:50 if it works with vim quickfix you wouldnt need to watch the console for errors 17:38:07 youd get them in the source 17:38:49 have you told matthias about your new development ? 17:38:54 no 17:39:06 what's the best way to reach him? 17:39:11 I'm sure he would be interested 17:40:50 it's a excellent new development with much potential I think 17:41:13 before i do that i want to clean up the code a little 17:41:24 sure 17:41:38 resetting the target doesnt affect the console conection 17:41:43 correct 17:41:52 Mecrisp-Stellaris RA 2.5.3 for STM32F103 by Matthias Koch 17:41:52 The swd buffer address is: 20004BE0 17:41:53 Mecrisp-Stellaris RA 2.5.3 for STM32F103 by Matthias Koch 17:41:53 The swd buffer address is: 20004BE0 17:42:01 thats all I get on the serial console 17:42:09 that's as it should be 17:42:19 pretty cool 17:43:07 the forth code is "done" for until i'm at a point that requires further integration 17:43:25 hmm I've lost keyboard input via swdcomm after a reset 17:43:39 it reads target output fine 17:43:47 --verbose please 17:43:58 do you have a screenshot? 17:44:21 2020-06-08T10:43:48 WARN common.c: Invalid flash type, please check device declaration 17:44:21 WARNING: Failed to set SWD clock rate to 4MHz. 17:44:36 on reset init drop everything in the ring buffers 17:44:54 Wow, this says it runs on the TI-84+ too, now I'm jealous. 17:44:54 https://collapseos.org/ 17:45:13 back 17:45:15 hey guys 17:45:47 so if you push the reset button while while data is in the ring buffers the data will be lost 17:45:52 crest, hmm I reset the target and the swd interface and it all works 17:46:06 resetting the target works 17:46:19 crest, now resetting the target alone and it all works 17:46:23 otherwise i could use the usb modem vom embello 17:46:27 *from 17:47:10 crest I even get the ansi colors from the board :) 17:47:14 hey tabemann 17:47:34 ansi escape sequences are just byte streams 17:47:38 tabemann, I've been testing crests SWD terminal, it's working perfectly! 17:47:46 crest, true 17:47:46 cool! 17:48:19 crest how will you handle flow control with file uploads ? 17:48:35 the ring buffer will take care of flow control 17:48:40 tabemann, it's as fast as my super fast system here 17:48:49 up to 255 bytes can be buffered per direction 17:49:02 tabemann, ie a very big wordlist in about 0.5 second 17:49:11 crest, wow 17:49:22 how do you get it to work with a particular terminal program? 17:49:24 crest so uploads will be pretty fast too ? 17:49:26 one byte is lost from each 256 byte ringbuffer to keep the code simpler and the index to 8 bit 17:49:41 tabemann, it doesnt use a terminal :) 17:49:48 it's possible 17:49:57 tabemann, serial terminal I mean 17:50:12 tabemann, it's working via a xterm here 17:50:19 tp: it doesn't use a serial terminal, but I mean, I still want something like e4thcom... 17:50:21 it should be possible to redirect its stdin and stderr to a nmdm pseudo device and connect a picocom/minicom/screen to the other end 17:50:48 tabemann: which features of e4thcom are important to you? 17:51:04 crest: history, line editing, recursive code loading... 17:51:15 does that include history search? 17:51:17 tabemann, why do you want e4thcom ? 17:51:27 history search would be nice but not necessary 17:51:55 tp: so I can put #include or #require in source files and also so I can have a line editor and history 17:52:47 tabemann: i want to enable recursive file includes in a different way (first) 17:53:44 i want to run a daemon that can be started by the host os hotplug support 17:54:07 and a client that connects to this daemon 17:55:10 if this daemon would support simulated hardware flow control, it'd be especially nice 17:55:37 it would never loose data 17:56:11 no line delays required (even in the first prototype a few weeks ago everything had flow control) 17:57:42 it's pretty impressive I admit 17:57:53 i don't know yet how i want to handle uploads 17:58:02 and dependencies exactly 17:58:50 i guess it depends on your preferred setup 17:59:52 one advantage of a daemon is that it could lock out the console during uploads 18:00:38 to prevent other clients *cough* the user *cough* from messing things up 18:01:36 https://mecrisp-stellaris-folkdoc.sourceforge.io/swdcom.html#swdcom 18:01:59 haha, beware the user!!! 18:02:50 and so far i didn't have to resort to assembler 18:02:58 --- join: boru` joined #forth 18:03:01 --- quit: boru (Disconnected by services) 18:03:04 --- nick: boru` -> boru 18:05:12 oh shit it's 3am again 18:05:14 gn8 18:05:44 .oO( that's why my headset wants to recharge ) 18:06:16 crest awesome work and concept! 18:06:28 nacht 18:06:47 and I love the use of the swd interface, also makes it easy to reflash anytime 18:07:14 tp: but you have to stop the swd process to release the stlink for other tools 18:09:01 thats fine 18:09:34 i just repower the board and swd seems to work, if not just hold the reset button 18:09:48 there is no way to disable SWD 18:10:38 during the reset process it's active, even if the swd pins have been repurposed by firmware 18:10:54 dont ask me how i know this :P 18:15:22 wow, the STM32H755xI devices incorporate high-speed embedded memories with a dual-bank Flash memory of 2 Mbytes, up to 1 Mbyte of RAM (including 192 Kbytes of TCM RAM, up to 864 Kbytes of user SRAM and 4 Kbytes of backup SRAM 18:15:41 and it can come in a 240 pin package! 18:15:54 oh also runs at 240 MHz 18:16:50 tabemann, the mcu in your Numworks ... consume up to 0.3 amps at ful speed etc, or 30 mA in standby! 18:18:23 back 18:19:36 * tabemann doesn't know whether 0.3 A is a lot or a little TBH 18:20:07 it's a lot for a micro, the old Z80 and it's ilk used that much in normal operation 18:20:38 my stm32f051 uses about 3mA at 8mhz, rising to 15mA at 96 Mhz 18:21:19 even with that level of power consumption, it's still my next project after I get wordlists working 18:21:57 wow, crests swdcom is the easiest terminal I've ever used 18:22:16 tabemann https://mecrisp-stellaris-folkdoc.sourceforge.io/swdcom.html#swdcom 18:22:31 just a pic of what I see in a xterm 18:23:56 is swdcom a standalone program or a daemon you connect to with something else? 18:24:27 you run a Forth program on the target, a C program on the pc 18:25:26 ah 18:27:54 when you run the Forth program your terminal gives something like 18:27:59 Mecrisp-Stellaris RA 2.5.3 for STM32F103 by Matthias Koch 18:27:59 The swd buffer address is: 20004BE0 18:28:15 then you run the c program 18:28:42 ./swd2 20004BE0 18:28:54 and youre in the target Forth terminal 18:28:55 ah 18:28:57 neat 18:29:48 https://github.com/Crest/swdcom 18:29:58 I'm sure crest would like more testers 18:31:23 --- quit: TCZ (Quit: Leaving) 18:32:30 so you use a SWD/usb dongle as the interface 18:33:19 hmm wonder if it works on a f0 disco 18:33:31 Ive tested it on a blue pill equivalent 18:36:05 I'll test it once I'm done with my wordlist functionality 18:36:54 no file upload yet but Ive a feeling this could relly go far 18:40:00 yeeehaw! 18:40:07 got wordlists working, finally 18:40:09 I think 18:40:38 heheh, famous last words 18:42:47 note that these are not traditional wordlists 18:42:54 they don't use DEFINITIONS and VOCABULARY 18:43:39 rather then use the Forth 2012-isms SET-CURRENT (and GET-CURRENT) and SET-ORDER (and GET-ORDER) 18:44:40 I decided on this because they are far simpler to implement and far more flexible to the user than the traditional approach in an environment where much of the memory is effectively write-once 18:58:41 hmm 18:58:42 I 18:58:50 'm looking at crest 18:58:53 's code 18:59:11 and it seems like it has platform-specific clock-setting code in it 19:00:23 --- join: boru` joined #forth 19:00:26 --- quit: boru (Disconnected by services) 19:00:29 --- nick: boru` -> boru 19:01:34 hes using FreeBSD like me 19:07:50 I wonder if it'd work right out of the box on Linux 19:09:15 that clock-setting code will probably need changing before it works on the F407 or L476 though 19:15:06 I have actually disabled all the clock stuff 19:15:50 I only have from "here 256 2* cell+ buffer: swd 0 swd !" down 19:16:03 and I removed the 72MHz 19:16:11 cool 19:16:22 it doesnt matter what clock the mcu runs at 19:16:39 crest just set 72 mhz to make it as fast as possible 19:16:52 on a blue pill (stm32f103) 19:16:59 ah 19:17:16 does this require some specifc st-link library? 19:17:18 --- quit: dave0 (Quit: dave's not here) 19:17:23 so you compile the C file, instruction in the file 19:17:30 just stlink 19:17:55 theoretically this should run on any discovery as is 19:18:07 which is pretty cool 19:18:08 but I mean, what package do I get the library code from? 19:18:31 I didnt use any lib package 19:18:43 crest says it's all installed if you have stlink 19:19:01 see if you can compile the c file 19:19:12 bootload.c 19:25:22 I installed libstlink-dev under debian and it made it find stlink.h but not stm32.h 19:26:12 yeah, stm32.h is not mentioned in any file in any package in debian 19:27:44 maybe they have split it off into a dev package ? 19:28:13 I searched everything 19:29:17 I dont have it here 19:29:44 I have /usr/local/include/stlink.h 19:29:55 and I built the binary 19:33:21 oh that's the thing 19:33:29 the header file installsed with libstlink-dev is bad 19:34:15 how come ? 19:37:24 donno 19:37:31 but it's missing that header file 19:37:43 and I can't seem to find it anywhere 19:39:44 i dont have it on my system either 19:40:01 I'll see what happens if I comment out that include 19:40:27 hmm why did it work for me ? 19:40:53 cc -O0 -g -std=c99 -Wextra -I/usr/local/include -L/usr/local/lib -o swd2 swd2.c -lstlink-shared 19:49:02 I give up 19:49:31 I dealt with all the dependency issues, yet it still throws a pile of errors at me when it manages to attempt to compile swd2.c 19:50:16 --- join: jedb joined #forth 19:51:30 did you use "cc -O0 -g -std=c99 -Wextra -I/usr/local/include -L/usr/local/lib -o swd2 swd2.c -lstlink-shared" ? 19:51:36 yes 19:51:39 with gcc rather than cc 19:51:42 oh :( 19:52:13 I'm sure crest will know the answer, I'll ask him next time hes on and pass it on 19:52:20 I suspect many of thes are portability issues 19:52:26 *these 19:53:04 OTOH the libstlink-dev package for debian is broken 19:53:43 FreeBSD is very close to Linux 19:54:07 sadly it's becoming more Linux like every day 19:55:55 even then there were many issues I saw with missing identifiers 19:56:23 nasty 19:56:28 yes, I know that linux lacks the "real Unix" factor - heh 19:56:51 and it's been influenced people like *coughs* Lennart Poettering 19:57:01 I tried to compile openocd under solaris the other day and it had heaps of M4 'not declared' errors 19:57:32 I think the mas appeal of linuc has just brought a lot of people who think they can program to Linux 19:58:18 and if it works it's good enough, they dont know how to do unit tests or all the really important but no fun tasks 19:58:23 linux has the factor that it is something new and refreshing and great to people whose only experience with computing is with windows or macos 19:58:59 and of course one is far more likely to have heard of linux than freebsd 19:59:10 Linux software is pretty poor I'm my opinion, it's just too easy to cut and paste and cobble something together 19:59:34 well FreeBSD is a bit better but not much 19:59:47 thats why Im looking at solaris atm 19:59:56 that's just the factor that more people program for linux - being lesser-known in itself weeds out many of those people for freebsd 20:00:05 I love the way it's done, very well engineered 20:00:15 good point 20:00:39 sadly poeterring drove tens of thousands of Linux users to FreeBSD 20:00:55 i was one of them 20:00:57 poettering wants linux to be windows 20:01:02 yes 20:01:38 tho I always say "poettering wants Linux to be a car radio" 20:01:57 why ? because a car radio needs to boot in under a second 20:02:02 I've been a loyal debian user since 2002 (not my first distro, my first was linuxppc - but linuxppc wouldn't run on the PC I built for college) 20:02:21 a Linux box running 24/7 doesnt care about taking a minute to boot 20:02:48 my first didtro was Yggdrassil in 1994 20:03:27 it was the most amazing thing Id ever seen 20:03:36 Linux kernel 0.998 20:03:48 x windows, reversi 20:04:15 that's how I reacted to my first experiences with Linx too, having been a mac user before that, and an apple //e user before that 20:04:25 *Linux 20:05:02 who allowed poettering to get his way anyways? 20:05:09 yeah, it was awesome 20:05:17 I came from Windows on pc 20:05:26 redhat did 20:05:57 redhat pretty much call the shots thesedays, or did. Now IBM own them 20:06:24 bought out for $44 BILLION ! 20:06:31 like WTF!!!! 20:06:57 somehow I'd've thought redhat wasn't worth that much 20:09:33 same here 20:09:55 I've never forgiven IBM for not picking up SUN for a few hundred million 20:10:10 instead they let oracle rape it 20:10:37 apparently IBM wanted the Linux web stuff 20:12:30 IBM has been into Linux stuff for a while 20:12:42 they even for a good while have had Linux running on their mainframes 20:13:49 sure 20:14:07 redhat made a couple of BILLION a year from Linux sevices 20:14:19 IBM made plenty as well 20:21:50 one thing I've wondered about with linux on a big iron is... what is the advantage of linux on a big iron versus linux on a conventional computing cluster made from conventional hardware? 20:22:10 I know big irons are used heavily in certain fields such as banking and stocks transactions 20:22:28 * tabemann one summer was involved in the operation of one of these big irons 20:22:47 probably just superior cooling, PSU, UPS, memory bus widths, opts ? 20:23:10 PC's are cheap and nasty in reality 20:23:28 a $5000 pc is actually a *cheap* pc 20:24:02 just a decent PSU for a PC would cost $5000 20:24:44 by that count something like 99.99% of all PCs out there count as "cheap and nasty" 20:25:02 and even the machines used to control the MRI machines where I worked could be "cheap and nasty" 20:25:30 as they were just slightly more pricier and better-specced versions of conventional PCs 20:26:05 and these were high-end PC's too 20:26:38 well, at least the machines that interacted with the user terminals 20:26:53 there were other embedded machines that actually directly interacted with the hardware 20:27:11 which probably were pricier just due to being specialized hardware 20:28:58 they sure do 20:29:54 i nearly paid $10,000 for a olivetti 186 in 1985, with a EGA display 20:30:01 thats what they cost then 20:30:50 PC's are the ultimate in cheap commodity hardware, thats the only way they are so cheap now (under $10,000) 20:31:53 and it's amazing how reliable they are now made 20:32:22 but I still have to clean the edge connectors on my ram every couple of years on this box 20:32:33 I remember how frequently the macs I used to use crashed, compared to now how reliable things are 20:32:41 because theyre the cheapest connector in existence 20:32:47 mind you full memory protection is a big factor in all this 20:33:15 yeah, I guess software has made pcs more reliable 20:33:22 before macos 10, there was no memory protection on macs 20:33:26 ahh 20:33:29 so any process could bring down the system 20:33:38 I made this PC in 2012 20:34:06 and on pcs under win95, IIRC there was no memory protection for the first megabyte of RAM 20:34:38 I bought 5 psus for $650 each and still have one brand new unboxed spare 20:35:35 I scoured the net looking for internal PSU pics until I found one that looked half reasonable in design 20:35:57 then I built 4 PC's 20:37:08 \I built my most recent tower for like $650 in total 20:37:24 I also bought 160 GB of ram 20:37:37 and about 15TB of hdds 20:37:49 I spent about $10k iirc 20:38:14 the pc's are all water cooled 20:38:49 and 12 years later only one mobo failed, the one I made for a daughter 20:40:39 whereas my computer that I built most recently is the only one that hast lasted this long (since 2012, so eight years) 20:41:23 luckily I bought the newest CPU so mine is still plenty fast enuf 20:43:19 I don't really use that machine anymore because it uses more power than my laptop, despite not being as specced as it, and unlike the laptop it (obviously) is not portable 20:45:33 I'm a dedicated pc user, at my age I need my 27" monitor 20:46:20 I like my laptop because I can bring it to coffeeshops and like, which I would be doing now were it not for COVID-19 20:47:27 ah yes 20:47:31 makes good sense 20:54:12 --- join: jsoft joined #forth 20:58:28 back 21:15:09 --- quit: tp (Ping timeout: 260 seconds) 22:07:38 --- join: gravicappa joined #forth 22:13:09 --- join: tp joined #forth 22:13:09 --- quit: tp (Changing host) 22:13:09 --- join: tp joined #forth 22:20:00 --- quit: proteusguy (Quit: Leaving) 22:20:54 --- join: proteusguy joined #forth 22:20:54 --- mode: ChanServ set +v proteusguy 22:25:59 --- quit: remexre (Quit: WeeChat 2.7.1) 22:37:33 --- join: dys joined #forth 22:54:10 --- quit: reepca (Read error: Connection reset by peer) 22:54:35 --- join: reepca joined #forth 23:25:24 --- quit: jedb (Remote host closed the connection) 23:25:42 --- join: jedb joined #forth 23:26:37 --- join: mtsd joined #forth 23:59:59 --- log: ended forth/20.06.07