00:00:00 --- log: started forth/20.06.05 01:24:36 --- quit: rpcope (Ping timeout: 256 seconds) 01:25:54 --- join: reepca joined #forth 01:30:36 --- join: rprimus joined #forth 01:31:03 --- quit: C-Keen (Quit: WeeChat 2.8) 01:31:35 --- join: rpcope joined #forth 01:46:47 --- quit: Vedran (Ping timeout: 264 seconds) 01:47:33 --- join: Vedran joined #forth 01:49:10 --- join: andrei-n joined #forth 02:17:42 --- quit: gravicappa (Ping timeout: 246 seconds) 02:24:41 --- join: jsoft joined #forth 02:43:15 --- join: gravicappa joined #forth 03:22:29 --- join: dddddd joined #forth 03:31:59 Is there any strongly typed variant of Forth? 03:32:37 is one needed ? 03:35:18 I'm no expert but as Forth is used to create languages, how can it be strongly typed ? 03:35:48 --- join: iyzsong joined #forth 03:49:40 As for the need, it's an age old discussion, but I find static analysis/type checking very useful for: preventing coding mistakes, and documentation/readability. 03:50:29 As for how it can be done, I don't know the internals of Forth well enough, but even a separate preprocessor that can parse Forth source code, could enforce type checking via comments, even. 03:51:09 perhaps strongly typed variants of Forth dont exist because theyre not needed or not applicable ? 03:51:12 At least, there'is a significant portion of programmers who would not use a non-typed language for their projects, and that reduces the range of appeal. 03:51:21 tp: Ah so they don't exist? 03:51:52 neuro_sys, I dont know for sure, Im still a Forth beginner, but I dont believe they exist 03:52:29 neuro_sys, as Forth can redefine itself, how would you strongly type that ? 03:53:46 neuro_sys, I suspect that desiring some of the capabilities of non Forth systems may seem sensible before one knows the language ? 03:54:04 tp: For instance when defining words, you can specify the expected type/cell-size of elements in the stack, and by scanning the source, throw an error when the pushed elements don't match for a given word call. 03:56:58 neuro_sys, I'm a technician not a real programmer, so I dont want to give you the wrong impression. Im more of a Forth user 03:57:50 neuro_sys, I also use cortex-m mcu's which will instantly throw a exception for almost any memory issue 03:58:07 That's a good aspect though, I think a type system would unnecessarily complicate the language, and would be overkill for small-scale applications/solutions. 03:58:44 Although having type checking would appeal to a wider audience, and the language would be adopted for more user space applications. 03:58:57 neuro_sys, we have some expert Forth programmers here but most of them are asleep right now I thinK 03:59:09 Hmm, seems like Factor is one Forth dialect that has dynamic type checking. 03:59:39 Ive heard of factor but it's uncommon in embedded OSS forths 04:00:05 Im an embedded Forth user, I use Forth to make equipment 04:00:14 I see, it would be a high overhead to use it on restricted environments. 04:00:36 it would I guess and I personally wouldnt need it 04:01:45 --- quit: jackdaniel (Remote host closed the connection) 04:01:55 --- join: jackdaniel joined #forth 04:02:07 I think those who ask here about strongly typed forths are mainly C users, but Forth is utterly different to C 04:02:42 Forth is pretty much different to all programming languages 04:03:02 it does have one similarity to LISP in that it can redefine itself 04:03:45 I mean I can redefine 1 to be 0 with Forth, where else can you do that ? 04:04:04 it's as simple as this : 1 0 ; 04:04:36 so 1 + 1 would = 0 04:05:04 Yes, it is amazing in that regard 04:05:56 no one wants to make 1 == 0, but the capability means that a valid Forth program may be "on fill wash spin drain off" 04:06:20 I like the simplicity of the language, little runtime overhead, and one-to-one correspondance with the executed code. 04:06:58 And the whole idea of code execution via stack is very brilliant, if not intuitive for many C-like language users. 04:07:03 --- join: iyzsong- joined #forth 04:07:20 i have found that Forth on the target MCU is about 3x slower than compiled C, but we also have 'tethered' forths that match and exceed compiled C in some cases 04:07:48 neuro_sys, thats true, I spent years coming to terms with the stack 04:08:13 as always, it depends what youre used to, where one came from 04:08:20 --- quit: iyzsong (Ping timeout: 272 seconds) 04:08:43 the stack does 'keep everything in one place' I like that simplicity 04:09:20 no one here will claim Forth is perfect, we are just addicted to the Forth way of doing things 04:21:18 --- quit: xek_ (Read error: Connection reset by peer) 04:23:09 neuro_sys, thanks for the chat, if you come here around 1900 UTC you'll generally find Forth people far more informed than I 04:23:20 nighto 05:04:44 Thanks likewise 05:10:15 --- quit: jsoft (Ping timeout: 246 seconds) 05:22:34 --- join: xek_ joined #forth 05:24:07 --- join: xek__ joined #forth 05:27:30 --- quit: xek_ (Ping timeout: 272 seconds) 05:38:06 --- quit: Keshl (Quit: Konversation terminated!) 05:38:59 --- join: Keshl joined #forth 05:51:07 --- join: xek_ joined #forth 05:54:06 --- quit: xek__ (Ping timeout: 272 seconds) 06:22:43 I would think having all stack items the same size if part of why types arent very popular 06:23:06 whereas in C its just as easy to have all the stack items be different sizes 06:24:56 not to mention fewer variables in Forth 06:25:52 like if you pushed an 8 bit type and a 16 bit type on the stack and added them, youd have to keep track of what size each stack element is 06:26:27 whereas now they are all just promoted to whatever the cell size is 06:35:55 --- quit: MrMobius (Read error: Connection reset by peer) 06:38:54 --- quit: mtsd (Quit: Leaving) 06:47:49 --- join: MrMobius joined #forth 06:52:46 --- join: Zarutian_HTC| joined #forth 06:52:46 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 07:04:58 --- join: TCZ joined #forth 07:11:13 --- quit: dave0 (Quit: dave's not here) 07:15:12 --- quit: gravicappa (Ping timeout: 260 seconds) 07:17:00 --- quit: Zarutian_HTC| (Ping timeout: 265 seconds) 07:23:55 --- join: Zarutian_HTC joined #forth 07:30:15 --- quit: Zarutian_HTC (Ping timeout: 246 seconds) 07:34:08 --- quit: iyzsong- (Quit: ZNC 1.7.1 - https://znc.in) 07:43:03 --- join: gravicappa joined #forth 09:08:51 --- join: Zarutian_HTC joined #forth 09:10:41 Don't need number interpretation 09:10:56 Just have the word 1 defined 09:11:09 And 0 09:11:29 Actually just 1 is enough I think 09:11:41 Then add 1 repeatedly to get every other numbre 09:11:46 More elegant this way 09:11:53 And closer to axiomatic set theory 09:19:54 --- join: WickedShell joined #forth 09:32:36 --- quit: gravicappa (Ping timeout: 272 seconds) 09:45:57 --- quit: TCZ (Quit: Leaving) 09:48:30 --- quit: dys (Ping timeout: 246 seconds) 10:52:04 --- join: gravicappa joined #forth 11:07:22 --- join: karswell_ joined #forth 11:18:30 --- join: jsoft joined #forth 11:28:42 --- nick: karswell_ -> karswell 11:55:12 --- quit: gravicappa (Ping timeout: 260 seconds) 11:55:33 --- join: gravicappa joined #forth 12:01:08 --- quit: jedb (Read error: Connection reset by peer) 12:09:29 --- join: X-Scale` joined #forth 12:11:13 --- quit: X-Scale (Ping timeout: 272 seconds) 12:11:13 --- nick: X-Scale` -> X-Scale 12:24:15 --- quit: X-Scale (Ping timeout: 246 seconds) 12:24:33 --- join: X-Scale` joined #forth 12:25:00 --- nick: X-Scale` -> X-Scale 12:53:19 --- join: dys joined #forth 13:03:00 --- quit: gravicappa (Ping timeout: 260 seconds) 13:20:28 --- quit: Zarutian_HTC (Ping timeout: 265 seconds) 13:37:20 --- join: Zarutian_HTC joined #forth 13:45:40 --- quit: andrei-n (Quit: Leaving) 14:06:29 --- quit: jsoft (Ping timeout: 260 seconds) 14:25:19 --- quit: reepca (Remote host closed the connection) 14:25:31 --- join: reepca joined #forth 14:42:09 --- quit: dys (Ping timeout: 246 seconds) 14:46:15 --- join: jsoft joined #forth 15:44:27 --- quit: xek_ (Ping timeout: 246 seconds) 15:51:56 --- join: X-Scale` joined #forth 15:52:55 --- quit: X-Scale (Ping timeout: 240 seconds) 15:52:56 --- nick: X-Scale` -> X-Scale 16:06:05 --- join: X-Scale` joined #forth 16:06:48 --- quit: X-Scale (Ping timeout: 272 seconds) 16:06:49 --- nick: X-Scale` -> X-Scale 16:38:35 --- join: iyzsong joined #forth 16:49:25 --- quit: reepca (Remote host closed the connection) 16:49:37 --- join: reepca joined #forth 17:05:35 SunOS openindiana 5.11 illumos-6523a3aa7f i86pc i386 i86pc 18:04:57 --- join: boru` joined #forth 18:05:00 --- quit: boru (Disconnected by services) 18:05:03 --- nick: boru` -> boru 18:38:11 --- join: rdrop-exit joined #forth 18:50:19 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 18:50:25 --- join: Zarutian_HTC| joined #forth 19:03:54 hey guys 19:04:05 hey tabemann 19:04:38 because I don't feel like figuring out the memory controller on the M7 ATM, I've thought of something else to waste my time with - implementing vocabularies 19:06:43 hahah, slacker 19:07:44 yet youd expect someone who can configure the m7 for serial eprom to have no problem with a doubly linked list :P 19:08:03 software guys! 19:09:33 vocabularies shouldn't be hard 19:09:41 hey tabemann :) what do you make of this error ? 19:09:44 configure.ac:12: error: possibly undefined macro: AC_MSG_WARN 19:09:45 If this token and others are legitimate, please use m4_pattern_allow. 19:10:10 donno, have never dealt with configure.ac files 19:10:24 it's some auto-configure thing 19:10:30 yes, Matthias Marlow made a VOCS for Mecrisp-Stellaris 19:10:30 popular with Linux C programmmers 19:10:53 ta, I'll keep searching 19:11:20 it's a openocd compile error on the oss version of solaris 19:13:15 you're trying out openindiana/illumos? 19:13:36 yes, I have it installed on a spare pc 19:13:51 I like it a LOT 19:14:43 install is a breeze and it installs bootable ZFS by default 19:14:59 it only asked me the user and root password 19:16:39 cool 19:16:51 how is the hardware compatibility 19:17:40 it doesnt have a driver for the intel video but is using the fallback which is fine in this case 19:17:59 apparently it's finr with nvidia as it uses the factory drivers 19:18:33 it's found all my stuff, but hardware compat is a kettle of fish anyway 19:18:59 i cant live without openocd which is not in the package system 19:30:00 --- join: jedb joined #forth 19:37:22 I'm trying to implement the classic Forth vocabulary system, but I'm not sure how I can do it with immutable words 19:37:42 a different approach I am thinking of, because I have plenty of room in the word headers to spare 19:37:50 is to tag each word with a wid 19:38:36 but then I'm not sure about implementing one wordlist inheriting from another 19:38:59 one solution would be what I did with hashforth and not have wordlists inherit from one another at all 19:39:08 but rather have a wordlist stack 19:41:48 I also feel that the approach I did for hashforth was much more flexible than the traditional approach anywayss 19:44:40 well, not a stack 19:44:52 because I'd normally set the whole thing at once, with a word named set-order 19:45:36 --- quit: WickedShell (Remote host closed the connection) 19:49:48 --- join: dave0 joined #forth 20:05:13 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 20:09:35 --- join: kopynew[m] joined #forth 20:18:35 --- join: iyzsong joined #forth 20:29:07 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 20:31:45 --- join: iyzsong joined #forth 20:40:59 --- nick: kopynew[m] -> Blue_flame 20:43:50 --- join: [1]MrMobius joined #forth 20:44:02 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 20:45:07 --- join: iyzsong joined #forth 20:46:06 --- quit: MrMobius (Ping timeout: 265 seconds) 20:46:07 --- nick: [1]MrMobius -> MrMobius 20:54:08 --- quit: dddddd (Ping timeout: 256 seconds) 21:00:24 --- quit: _whitelogger (Remote host closed the connection) 21:03:25 --- join: _whitelogger joined #forth 21:43:55 --- quit: rdrop-exit (Quit: Lost terminal) 22:12:38 --- quit: proteusguy (Read error: Connection reset by peer) 22:45:24 --- quit: _whitelogger (Remote host closed the connection) 22:48:25 --- join: _whitelogger joined #forth 23:44:17 --- join: proteusguy joined #forth 23:44:17 --- mode: ChanServ set +v proteusguy 23:59:59 --- log: ended forth/20.06.05