Zarutian_HTC has joined #forth
<tp> crest, is that a problem ?
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
Labu has quit [Quit: Leaving.]
rdrop-exit has joined #forth
Labu has joined #forth
Labu has quit [Client Quit]
<rdrop-exit> good morning Forth cognoscenti c[]
<tp> good morning rdrop-exit s[]
<rdrop-exit> hi tp!
<rdrop-exit> I actually dreamt about a Color Forth variant last night. I guess its a side effect of this prolonged quarantine.
<tp> Ive had a Forth dream recently also
<rdrop-exit> cool
<tp> it was quite a silly dream
<tp> I dreampt I was writing Forth code and became aware I was dreaming and remembered that i actually had to write some urgent code in real life, so I woke up to do it
<tp> but when I woke up I realised that I didnt have any urgent Forth code to write
<rdrop-exit> :))
<tp> ripped off!
proteus-guy has quit [Remote host closed the connection]
<tabemann> hey guys
<tp> hey tabemann !
<tabemann> I implemented SEE - now I'm going to test it
<tp> awesome!
<tp> it's one of my most used dev words
<tabemann> and for my preliminary test, SEE ASSEMBLE-MAIN, it works
<tabemann> I just pushed my code
<tabemann> try it!
<tabemann> note that I made significant changes to the kernel, so you'll need to recompile and upload it
<tp> I always do
<tp> just doing some testing on a project right now, will test yours asap
<tp> I ran into a nasty bug with my blue pill diags, it fails to work properly flashing sections of flash with the latest release for some utterly unknown reason to me
<tp> so I had to go back to the old kernel
<tabemann> I discovered accidentally that flashing the wrong forth code onto the L4 board bricks it, at least to the point that ST-Flash is needed to recover
<rdrop-exit> hi tabemann!
<tabemann> hey
<tabemann> whoops there's a bug in the disassembler - as I expected
<rdrop-exit> step on it
<tp> tabemann, it rendered the L4 board unbootable, it's impossible to brick them
<tabemann> I know
<tp> I remembered when I once disabled the SWD pins and it wouldnt flash .. I pressed reset as it was trying to flash and bingo, flashed :)
<tabemann> egads
<tabemann> now more bugs have been gotten out
<rdrop-exit> kudos
ryke has joined #forth
ryke has quit [Client Quit]
dave0 has quit [Quit: dave's not here]
dddddd has quit [Ping timeout: 260 seconds]
Lord_Nightmare has quit [Quit: ZNC - http://znc.in]
Lord_Nightmare has joined #forth
jsoft has joined #forth
gravicappa has joined #forth
dys has quit [Ping timeout: 246 seconds]
proteus-guy has joined #forth
proteus-dude has joined #forth
gravicappa has quit [Ping timeout: 256 seconds]
gravicappa has joined #forth
dys has joined #forth
mtsd has joined #forth
xek_ has joined #forth
xek has quit [Ping timeout: 264 seconds]
xek__ has joined #forth
xek_ has quit [Ping timeout: 260 seconds]
Labu has joined #forth
dddddd has joined #forth
presiden has quit [Ping timeout: 240 seconds]
nmz has quit [Ping timeout: 260 seconds]
WilhelmVonWeiner has quit [Ping timeout: 272 seconds]
WickedShell has quit [Remote host closed the connection]
rdrop-exit has quit [Ping timeout: 256 seconds]
rdrop-exit has joined #forth
proteus-dude has quit [Ping timeout: 256 seconds]
jsoft has quit [Ping timeout: 258 seconds]
proteus-dude has joined #forth
deesix has joined #forth
dddddd_ has joined #forth
dddddd has quit [Ping timeout: 246 seconds]
dddddd__ has joined #forth
deesix_ has quit [Ping timeout: 246 seconds]
dddddd_ has quit [Ping timeout: 264 seconds]
deesix has quit [Ping timeout: 264 seconds]
proteus-guy has quit [Read error: Connection reset by peer]
proteus-dude has quit [Remote host closed the connection]
dddddd__ has quit [Ping timeout: 240 seconds]
deesix has joined #forth
dddddd__ has joined #forth
dddddd__ is now known as dddddd
iyzsong has joined #forth
mtsd has quit [Quit: Leaving]
rdrop-exit has quit [Quit: Lost terminal]
iyzsong- has joined #forth
iyzsong has quit [Ping timeout: 260 seconds]
iyzsong- has quit [Ping timeout: 240 seconds]
iyzsong has joined #forth
X-Scale` has joined #forth
X-Scale has quit [Ping timeout: 246 seconds]
X-Scale` is now known as X-Scale
<crest> tp: i tried to enable RTS and CTS on the blue pill but it didn't work on usart1
<crest> even after remapping can1 to other pins
<crest> btw do your bitmap words using bis! really assume that all bitfields default to all zeroes?
<tp> crest, the blue pill can be very frustrating to work with and although I think the need to simplify the GPIO config is overly complicated, I see the need for it
<crest> it's really annoying it looks like the macos ftdi232 driver lacks hw flow control support
<tp> crest, the 'reset:xxxxxxxx' is derived from the cmsis-svd
<crest> on a freebsd system picocom displays the flow control as RTS/CTS
<tp> so whatever it says in the bitfields is what you will get on a hardware reset
<crest> on mac os it displays RTS/CTS (none)
<crest> but there is no way to clear bits set by default
<tp> ?
<crest> e.g. most gpio pins default to $4 in their CRL/CRH bitfield
<crest> just setting more bits isn't the right thing to do
<crest> you have to load the old register value, mask the bitfield, insert the new value and write it back
<tp> GPIOB_CRL (read-write) Reset:0x44444444 ?
<tp> like that ?
<crest> yes
<tp> thats controlled by the micro reset microcode etc
<tp> no way you can change that
<tp> except after reboot, then you can do what you like
<crest> that's fine because it you want the reset logic to put the pins into a "harmless" state
<tp> exactly, and all the MCU's do it
<tp> looks like you have a explosion of problems ?
<crest> but just setting more bits in the register to "1" isn't enough to configure the hardware
<tp> (to misquote rdrop-exit)
<tp> no, and I'm actually working on a way to fix this for the damn F103 for once and for all
<tp> it's as codeless as it can get
<crest> i just looked at your code and noticed that the code didn't insert bitfields
<tp> afterall the best and most reliable code is code thats not there
<crest> instead it just ORs the new bits into the memory mapped register
<tp> please pastebin code snippets etc as Im always working on other stuff and cant immediately grok what you mean
<tp> I'm about 100 IQ points short for that kind of caper I suspect
<crest> : GPIOA_CRL_MODE0 ( %XX -- ) 0 lshift GPIOA_CRL bis! ; \ GPIOA_CRL_MODE0 Port n.0 mode bits
<crest> : GPIOA_CRL_CNF0 ( %XX -- ) 2 lshift GPIOA_CRL bis! ; \ GPIOA_CRL_CNF0 Port n.0 configuration bits
<crest> etc.
<crest> they just shit the argument by the correct amount of bits
<crest> and use bis!
<tp> yes
<crest> which loads the old value, combines the two with logical or and writes it back
<tp> I know that
<tp> is that a problem, do you have a better way ?
<crest> the problem is the mcu doesn't use an all zeroes
<tp> ah yes!
<crest> and there is no way to clear "1" bits from registers that way
<tp> a very cood point
<tp> good
<crest> yes the correct solution is something like what i did in my crazy cr! word
<tp> which is why it's been changed
<tp> no, yours is not tackling the root problem
<crest> but if the bit field boundries are fixed you can simplify the code by using constants
<tp> you will see that the BIS! is gone
<tp> it's been gone for quite a while here
<tp> this is my plan ....
<tp> tell me what you think ?
<crest> GPIOA_CRL defined somewhere?
<tp> sure, in the memmap.fs which you have
<tp> thats never changed
<crest> that code can't work because you pass to few arguments to it
<tp> see the stack comment ?
<tp> ( %bb -- x addr )
<crest> but you need the start and end bit of bit field
<tp> that code works as designed
<crest> but it doesn't solve the problem
<tp> it's up to you to add a BIC! or a BIC!
<crest> it just passes the buck to the next guy
<tp> hahahaha
<crest> it should replace the bitfield
<tp> the programmer is expected to know what he is doing
<tp> a hammer wont build the house for you
<tp> no, it must NOT replace the bitfield at that stage
<crest> no but i expect my drill to turn if i pull the trigger
<tp> or you get what you complained about earlier
<crest> instead of reminding me to turn the drill clockwise really quickly
<tp> my next idea is to replace the cmsis-svd and join MODE0 and CNF0 into a new bitfield
<crest> do you see the appeal of %1010 PINx GPIOx CR!
<crest> it works the same for all possible values of mode, cnf, pin and gpio
<tp> no, i'll never use that format, but I do see the appeal of output gpioa-mode-10
<tp> or something like that
<crest> it doesn't matter if the pin falls into the high or low half of the control register
<tp> the default mode is input analog floating iirc
<crest> on most pins
proteus-guy has joined #forth
<tp> and it's easy to change to output pushpull in one operation iorc
<crest> at least floating input
<tp> on all pins
<tp> it's changed by Mecrisp-Stellaris at bootup
<crest> what about jtag?
proteus-dude has joined #forth
<tp> ok, apart from jtag :)
<tp> all pins except jtag
<tp> hey I dont actually use the F103, it's my least fav cpu
<tp> if you want instant correct answers youll have to ask me about the F051
<crest> is it possible enable RTS (and CTS) at runtime?
<tp> sure
<tp> thats what I do
proteus-dude has quit [Client Quit]
<tp> i pasted the source I use for the f103 for you a while back
<crest> is it enough to put the RTS pin into 2MHz alternate function push-pull mode and set the RTSE bit in the USART CR3
<crest> i know and i looked at it
<tp> firstly, forget all the 'speed' modes
<tp> it doesnt matter, use the default whatever it is
<crest> i used it in an attempt to replicate it in forth
<tp> it's from Frank Sargeants Forth on the F103
<tp> and what I use in any F103 kernels I make
<tp> <crest> is it enough to put the RTS pin into 2MHz alternate function push-pull mode and set the RTSE bit in the USART CR3 ?
<tp> no, you must assign a GPIO pin to RTS signal as well
<crest> i wanted to understand the code and not just copy and paste some magic incantation into terminal.s
<tp> then youre done
<tp> then get out your GAS book ?
<tp> and the M3 assembler book
<tp> oh, and the technical ref
<crest> i did
<tp> and my equates.s file :)
<tp> I also generate every equate for the chip
<crest> i even looked at the errata for the chip
<tp> i used it to make the first f103 RTS mod and it failed badly, so I copied franks work and moved on because ... I dont use that chip
<crest> which is how i found out about the pin conflict on PA12 between CAN1 and USART1 RTS
<tp> which is why I mentioned that to you earlier and always put the terminal on usart2
<tp> usart1 competes with can and usb
<crest> the problem according to the errata is that can1 blocks any other alternate function on PA1 even if CAN is disabled unless CAN is remapped
<tp> welcome to the nasty f103
<crest> but changing CAN_REMAP from %00 to %10 should fix that
<tp> please dont assume that I care what the f103 does
<crest> ok
<tp> it's ancient and nasty junk, only a lot less nasty than avr
<crest> do you care about anything other than f051?
<tp> hell yeah
<crest> f407?
<tp> not really, it's too advanced for what I need
<tp> I have one
<tp> I take the pushbike to the shops not the F16A in the hangar
<tp> and who needs 1MB of flash ??
<tp> not me
<crest> your bitfields :-P
<tp> I love the MSP430
<tp> the 6800, 68hc11, 6805
<crest> but i'm sure it won't be able to old bitfields for its hardware :-P
<crest> i never msp430, but the instruction set looks nice
<tp> i have a esp2866 that I just cant be bothered with
<crest> cleaned up pdp11 with more registers at the cost of few addressing modes
<tp> the msp430 isa is so sweet!
<crest> it should be easy to write assembler msp430
<tp> I like various PICS, theyre fast and reliable
<tp> yeah it is
<crest> but the pic isa is nasty
<tp> I plan to get back to the msp430 soon for a while
<tp> yeah but I run Forth on them so I dont care
<tp> PIC + Forth is ok
<tp> nothing special but fast and reliable, some good peripherals, all in dip SMT
<tp> i have about 100 in stock
<crest> which forth do you run on pic?
<tp> id never do pic assy, it's hateful
<tp> flashforth
<tp> but there are a few
<tp> amforth
<tp> pics have been popular among Forth writers
<crest> lots of useful peripherals?
<tp> but the botton line is that I have 480 off STM43F051 and they do everything all the others do, so why stray from the f051 ?
<tp> yep
<tp> plus I love the QFN32 package, it's my ideal
<tp> it's tiny and thin, 5x5x1.2mm
<tp> yet the pins are 0.5mm apart and wide
<tp> and I have no problems soldering them
<tp> I'm a Forth user, I just make things
<tp> ill be starting my execise box soon, and that should showcase my current IDE and bitields
<tp> it's a fair project, touch sensor, timers, low power, interrupts, rtc, lcd
<tp> hmm, maybe I should release my ultra simple, low power nightlight first ?
crest has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
WilhelmVonWeiner has joined #forth
WilhelmVonWeiner is now known as Guest38566
nmz has joined #forth
presiden has joined #forth
crest has joined #forth
iyzsong has quit [Quit: ZNC 1.7.1 - https://znc.in]
jsoft has joined #forth
jsoft has quit [Ping timeout: 264 seconds]
Zarutian_HTC has quit [Ping timeout: 258 seconds]
TCZ has joined #forth
Zarutian_HTC has joined #forth
karswell has joined #forth
dys has quit [Ping timeout: 260 seconds]
cantstanya has quit [Write error: Connection reset by peer]
ornxka has quit [Quit: No Ping reply in 180 seconds.]
cantstanya has joined #forth
ornxka has joined #forth
jsoft has joined #forth
TCZ has quit [Quit: Leaving]
jedb has quit [Remote host closed the connection]
WickedShell has joined #forth
jedb has joined #forth
karswell has quit [Remote host closed the connection]
karswell has joined #forth
cantstanya has quit [Remote host closed the connection]
cantstanya has joined #forth
jsoft has quit [Ping timeout: 260 seconds]
cheater has quit [Ping timeout: 246 seconds]
cheater has joined #forth
C-Keen has quit [Quit: WeeChat 2.6]
gravicappa has quit [Ping timeout: 260 seconds]
reepca has quit [Read error: Connection reset by peer]
reepca has joined #forth
jedb has quit [Remote host closed the connection]
jedb has joined #forth
<crest> tp: i patched mecrisp st with ascii control chars in Fehler_Quit(_n) and quit
<crest> the this allows me to upload code without line delay or (working) hardware flow control
<crest> and uploads stop at the first error with a file name and line number
<tp> crest, nice work!
<crest> the upload tool works as picocom send-cmd
<crest> so far the code is wastes host cpu cycles because it transmits one byte at a time
<crest> but it simplifies the code
<crest> the only problem is that it locks up on very long lines
<tp> that sounds like a flow control problem ?
<crest> but it looks like mecrisp itself just hangs if you attempt to send (close to) 200 bytes
<crest> the input buffer size is just 200 bytes
<tp> ahh yes, if it's really long and waiting for a cr
<tp> because I use m0, I have a habit of using short lines to reduce the load
<crest> maybe i could fail after 198 bytes and add a \r\n
<crest> i want to tool to handle long lines with a graceful error instead of a unresponsive forth system
<tp> good idea
<crest> because shit happens
<tp> maybe generate a coloured warning at X chars ?
<crest> i want to upload to stop with an error
<tp> everything has a limit
<crest> sure but it shouldn't require a forth system reset because that loses the mcu state
<tp> except my propensity to write bad Forth code of course
<tp> agreed
<crest> sure you can crash the system
<crest> it even works with a fucking ft232
<tp> i use them all the time without issues
<crest> this braindead chip takes up to 3 bytes to react to hardware flow control
<tp> do you have fake ones tho ?
<crest> according to the fdti website you should think of it as a packet oriented chip and not a true serial port
<tp> I have no issues with ft232 myself
<crest> at that point i gave up on getting flow control for usart1 working
<crest> and started writing something cleaner
<tp> flow control with usb/serial is always a problem, and why I use hardware handshaking
<tp> the usb side is buried in complex flow control methods that few seem to understand
<tp> all too hard
<tp> I've been watching a online debate over this exact issue and everyone seems confused
dave0 has joined #forth
<crest> usb serial itself is pretty nice from the usb end of things
<crest> or usb modem class is
<crest> it just transmits the payload as usb bulk frames
<crest> those are checksummed and acked with backpressure
<crest> if the receiver is busy it replies to a message with stall and the sender is required to retransmit it
<crest> so usb modem emulation is faster than a any reasonable clocked usart with flow control
<crest> its just a rough draft
<crest> *it's
<tp> crest, yes, usb terminal on the F103 is substantially faster than anything I can do in serial
<crest> would it be possible to keep enough of the usb state to keep the device connected during a mcu reset?
<tp> I've no idea, but you can do a mecrisp-stellaris "clear ram" instead of a mcu reset ?
<tp> i use that method with my ihex binary generator
<crest> at least it should be possible to write usbcomm tool that reconnects automatically
<crest> *a usbcomm
<tp> so that c file is your 'uploader' which is called by picocom ?
<crest> yes
<crest> i added ascii ack to quit
<tp> thats a interesting take on the problem
<crest> and ascii nak to Fehler_Quit(_n)
<tp> as 'quit' is the outer interpreter ?
<crest> yes
<crest> i just added it after "ok."
<crest> unless you transmit raw binary data there shouldn't be any data transparency problems with this
<tp> thats one of the awesome features about forth, everyone has their own solution and thats real diversity!
<crest> because those control sequences were put into ascii exactly for control purposes
<tp> yes
<tp> I transmit the dictionary contents as ihex to get around the binary transmission issue
<tp> it works fine and the built in crc means I never get any errors
<crest> would it be possible to use a pair of ring buffer accessed via swd as console?
<tp> woo! thats a 'out there' question!
<crest> the debugger would poll the write index of one ring buffer and consume from it
<crest> and append to the other one
<crest> it would keep as many pins free as possible
<tp> and be super fast ?
<crest> and you could use a stlink v2 clone around
<tp> everyone has one except blue pill users ;-)
<crest> even many blue pill users have stlink v2
<tp> I mean every stm32 disco and nucleo board comes with one
<crest> i just got mine today
<crest> but haven't used it
<crest> (yet)
<crest> there would be a lot of overhead on the wire and the host cpu
<crest> but who cares?
<tp> yes, the cheap $2 blue pill is often sold with a cheap $2 stlink v2 clone taking the price to $4 ish
<crest> the mcu is the bottleneck after all
<tp> not me, pcs have plenty of grunt to spare
<crest> what is so crazy about of this idea?
<tp> those stlink v2 clones often come with clone stm32f103's
<crest> its just a shared memory buffer with two single producer, single consumer ringbuffers
<tp> I'm not qualified to judge, I have no experience there
<crest> if the debugger could raise an interrupt it the mcu wouldn't even have to poll
<tp> it sounds like a great idea tho
<tp> but then youd have to build a terminal for it ?
<crest> yes
<tp> it would be revolutionary I think
<crest> or use something like cuse4bsd to expose it as char dev
<tp> as you say, simple to use, wastes no pins
<tp> youll get about 4 users tho
<tp> not that Id care, as I may be one of them
<crest> you could even stop the cpu and traverse the dictionary to check if a word is already defined to implement #require
<tp> but Mecrisp-Stellaris is used my many windows and Linux users
<crest> expose the serial as telnet server on ::1/127.0.0.1
<tp> (let them use cutecom and e4thcom ;-)
<crest> cutecom?
<tp> I have a telnet facility on the Tiva but was never able to use it the way I use screen
<tp> cutecom is a serial terminal common among windows users
<tp> I think
<tp> theyre all pretty horrible
<crest> oh shit the screenshot looks horrible
<tp> yeh
<tp> dont bother even looking at those things
<crest> it wastes 1/4 of the screen with bloated ui elements
<tp> theyre just horrible
<tp> agreed
<tp> I couldnt use Forth if I had to use it with that stuff
<crest> running this swdcom as daemon would be nice
<crest> it could bind a unix domain socket
<crest> and a suitable client could just pass file descriptors to upload
<tp> youre light years ahead of me in that area
<crest> have you used urxvt(cd)
<tp> it rings a bell
<tp> a udp terminal ?
<crest> urxvt is a pretty heavy x11 terminal with unicode support
<crest> e.g. it can mix different fonts to display almost all unicode ranges with a good looking font
<crest> because most good fonts for chinese or japanese look crap for other code points
<crest> if you want to display japanese and code at the same time
<crest> but it starts a bit slow because all this stuff
<crest> because of this you can run it as daemon
<crest> on first use (or in .xsession) it starts as daemon
<crest> and all new windows just connect to this daemon reducing startup time
<crest> you could do something similar with the swdcomm
<crest> on first use it would scan all devices and start a daemon per detected device
<crest> or at least per serial number
<crest> you than connect to this daemon to upload files or attach to the console
<crest> that should be possible if ARMs claims about the m3 debugging support hold water
<veltas> I got around to writing my keyboard interrupt handler in forth on the ZX Spectrum, which profiling has indicated runs in around 10ms
<veltas> Was quite cool watching it run and it does complete faster than the frame, with multiple loops and if statements running within its logic
<veltas> Nice performance test
<veltas> Totally inappropriate though, I'm going to rewrite this handler in assembly lol
<crest> how much rum do you need for your zx forth?
<crest> would it run on a zx81 with 16kb ram extension?
<veltas> It's currently under 4KB, but not sure where it will land
<veltas> 3485 right now
<veltas> I have an option to build it as a tokenized forth, which in the long run should allow it to remain very small so should be able to squeeze some form onto a 16K spectrum, not sure about ZX81 but probably similar enough so yes
<veltas> I'm at the point where the tokenized version is about 30 bytes larger or something, I should break even soon. 128 tokens might be too much of a table overhead, might try with 64.
<veltas> I know tp's eyes are glazing over
<veltas> Currently it has separate headers, so programs produced using this forth environment should actually be able to shave off a big portion of the ram usage / image size if interpreting and word lookup is no longer needed in deployment
<crest> tp: i just attached my stlink v2 (clone) and it detected the stm32f103
<crest> but it stops the forth console (probably the whole m3 core)
<veltas> 1243 bytes form the headers for the current output, so 'decapitated' image as rdrop puts it would be 2242 bytes.
<veltas> Anyway that's enough fun for today
<crest> the freebsd stlink package includes a shared lib and c headers for it that is used to implement the st-util gdb server
<crest> and it includes a write_mem8 and write_mem32 etc.
<crest> if the 32bit writes are atomic it should be enough to implement a single writer, single reader ring buffer
<tp> crest, I rarely use the terminal anyway, 95% of my interaction with the mcu is done from my editor
<crest> which explains why upload speed is so important to you
<tp> crest, your swd interface does sound very exciting, it would be a *new thing* for Mecrisp-Stellaris
<tp> crest, yes, upload speed is everything
<crest> my ack based flow control isn't?
<crest> and an other advantage is that the receive buffer would be in the sram
<crest> the debugger could write to the buffer while the compiler is busy
<crest> making good use of the available write bandwidth
<tp> your ack based flow control is very interesting, I'll definitely be thinking about that
<crest> just a handful 1 byte changes
<crest> i followed the color support code to guide me to all places that needed changing
<tp> tabemann, also uses ack based flow control but I didnt really follow how it was implemented, you have filled in a lot of my ignorance there today
<crest> even more important to me than the speed is reliable error reporting
<crest> it aborts on the first compile error
<tp> crest, the Mecrisp-Stellaris assembly is actually quite easy to follow, even the special german linguistics can be decoded ;-)
<tp> yes, agree 100%
<tp> when I first used Mecrisp-Stellaris it was slow and locked up with no errors
<crest> even as a native speaker i'm confused my the german/english mixture
<tp> and I wondered how anyone new to Forth would consider using it for more than 5 minutes
<crest> good question
<crest> and an important one if we want to grow the userbase
<tp> i think that it's a easy question and the answer is ... "they would ditch it immediately"
<crest> i suspect a module system would help
<tp> it's usless as is, when compared to Gcc, openCM3 and gdb
<crest> e.g. this is how you use gpio port, timer, usart etc.
<tp> that C system wipes the floor with the basic Mecrisp-Stellaris and many forths
<crest> what changes things for you?
<crest> just your screen setup?
<tp> basically yes
<tp> I write code and click make
<tp> same as using Gcc
<crest> okay the st-* tools link against libusb to talk to the debugger
<tp> the source is uploaded and runs on the target
<crest> i like to play with the system on the console
<tp> errors are easy to see and hear
<tp> mine is a very fast and easy to use system
<crest> but the danger is that your microcontroller grows true state
<crest> e.g. each chip holds its unique state
djinni has quit [Quit: Leaving]
<crest> that exists nowhere else
* tp examines the mcu ... nope nothing growing on it
<crest> :-)
<tp> where does that danger lay ?
<tp> is is contagious, will my other chips be infected ?
<crest> you grow your forth system on the console without keeping the source code somewhere
<tp> do they need to observee a 'chip distancing rule' ?
<crest> in the end it kinda works but nobody know why or how
<crest> and taking a hexdump isn't the same thing
<tp> no, the source is saved in the editor and versioned as I go
<crest> in your setup it is
<crest> but if you just type at the console until it works
<tp> the source is treated exactly the same here as it would be with a C system
<crest> and version controlled?
<tp> in fact I think many C users would feel a bit uneasy if they saw it
<tp> yes, with fossil SCM
<crest> good choice for personal projects
<crest> everything in one sqlite db
<crest> even tickets and a wiki
<crest> and you can even keep unversioned blobs like releases or build artifacts in it and sync them between systems
<tp> yeah, it is fabulous for me, even CRC uses fossil for RETRO, and if you ever look at that project, youll see it's so well organised it should be german!
<crest> what annoys me is the lack of something like git add -p
<tp> crest, for personal projects ??? fossil does everything GIT does and does it properly
<crest> i often work on several parts of a file and want to add them one clean commit at a time
<crest> instead of having to add all changes to a file in a single commit or undo them manually and add them manually in multiple stecks
<crest> *steps
<tp> hmm, I should append my above comment ... fossil does everything GIT does and does it properly for me :)
<crest> its a small feature but it's important for my personal workflow
<crest> the other problem is that few people know about fossil
<tp> and thats all that matters
<tp> and are you *sure* that fossil doesnt have that capability ?
<tp> crest, I know that GIT is a million times more common than Fossil, but that metric doesnt mean much in this day and age
<crest> it does for larger projects
<crest> git lowers the barrier to entry
<crest> and there is a lot of useful tooling around git
<tp> crest, windows is also a million times more common than Linux on the desktop, but does that make it superior in any way otehr than marketing and retail channel ownership ?
<crest> this more like comparing freebsd and linux as webserver
<crest> sure i prefer freebsd
<tp> crest, I bet 99% of git users use it for small projects as a downloader
<crest> but those aren't important
<tp> I bet most of them have no idea what a rebase is
<crest> they just want a tarball or even worse something to pipe into sudo bash
<crest> but the project cares about attracting talent
<tp> actually I dont rebase as fossil doesnt have it, and doesnt need it
<tp> hahaha
<crest> e.g. fossil is good enough for most projects
<crest> but it wouldn't be able to handle the freebsd base or ports repos
<crest> the history is too large
<crest> even git struggles with the freebsd repos (base, ports)
<tp> sure
<crest> it used to break github
<crest> but git was improved to handle huge repos better because freebsd (and a few others) demonstrated that this is a real world usecase
<tp> are you telling me that if I want to go fishing I should buy a aircraft carrier to cast my bait from ?
<crest> there are bigger and older repos than the linux kernel
<tp> shouldnt I use something suited for my needs ?
<crest> for your personal project you should use whatever works for you
<crest> but if you want to grow the project into a larger team effort
<tp> well, Mecrisp-Stellaris isnt one of them and nor are 99% of all projects on github
<tp> in fact Mecrisp-Stellaris uses no scm
<crest> *sigh*
<tp> matthias doesnt need one
<tp> is the Linux kernel on github ?
<crest> yes (official mirror)
<crest> and for a while the official copy was on github because kernel.org had slight security problems
<tp> well then, everyone writing a Forth blinky should immediately change to git on github for the 40 lines of source ?
<tp> and I have a copy of the Linux kernel here
<tp> it's no big deal
xek has joined #forth
<tp> linus said 'why should I backup the kernel, there are thousands of copies on the net'
<crest> sure but which ones can you trust?
<tp> id trust your copy :)
xek__ has quit [Ping timeout: 260 seconds]
<crest> i don't think i have a recent copy of the linux kernel repo
<tp> actuall same here
<tp> I'm a FreeBSD user