00:00:00 --- log: started forth/20.05.02 00:11:06 --- join: merkc0 joined #forth 00:45:16 --- quit: proteus-guy (Ping timeout: 240 seconds) 00:46:02 --- join: proteus-guy joined #forth 01:06:24 --- quit: _whitelogger (Remote host closed the connection) 01:09:27 --- join: _whitelogger joined #forth 01:11:26 --- join: reepca` joined #forth 01:12:21 --- quit: reepca (Read error: Connection reset by peer) 01:18:09 --- join: dddddd joined #forth 01:22:19 --- join: rdrop-exit joined #forth 01:22:48 good afternoon Forthologists c[] 01:24:15 good afternoon 01:24:19 g'day mate 01:24:31 hello :) c[] 01:24:34 owsitgoingey ? 01:25:11 good, relaxing with the wife and the dogs 01:25:14 (traditional Australian greeting) 01:25:31 taking a coffee break 01:25:40 thats a change! 01:26:04 coffee usually triggers a check of #forth 01:26:28 see what's happening with the other 43 Forthers 01:26:34 I've run out of Kaluah coffee lacquer, and they raised the price from $27 to $38 so I won't be having any more until they drop it again 01:26:53 you have my sympathy 01:26:55 I'll just have to be strong! 01:28:01 Im currently adding a page to my online doc, a overdue comparison of the methods used by C and Forth to configure embedded peripheral devices 01:28:26 cool 01:29:03 this area is best understood by forthers and least understood by C programmers 01:34:23 tp, our official embassador to Ceelandia 01:34:37 --- quit: merkc0 (Ping timeout: 272 seconds) 01:36:06 teaching the Ceelandians the many advantages of Forthacracy 01:36:38 hahaha 01:37:58 the Ceelandians are parochial lot, mainly superstitious farmers and labourers, quick to anger when drunk. 01:39:38 and dont insult their Ghod least you find yourself beset upon by large oafs in hobnailed boots 01:48:11 --- quit: diginet2 (Quit: diginet has left the building) 01:48:23 "Minimize syntax in favor of semantics." -- Chuck Moore 01:48:33 --- join: diginet2 joined #forth 01:52:33 What Experts Say About Semantics 01:52:33 Jenny Lederer, assistant professor and linguistics advisor in the Department of English Language and Literature at San Francisco State University: "Semantics is the study of meaning in context; it's the investigation of how words, phrases and sentences evoke concepts and ideas in our minds. As we learn language, we attach meanings to words by learning what objects and concepts each word refers to. 01:58:17 that's fairly broad, in narrower computing terms semantics is about the meaning (i.e. action resulting from a piece of code) 02:00:48 as opposed to syntax which is about what constitutes a "legal" (well-formed) statement in the language 02:01:40 Forth is closer to an assembly language, no syntax to speak of, just semantics 02:02:59 "There is no discontinuaty between creation and use with Forth" -- W.P. Salman et al. 02:04:45 (adding to my collection of quotes) 02:05:07 * discontinuity 02:05:50 This is a problem with some Forths and Forth authors/vendors they try to draw a line between the two 02:10:12 rdrop-exit, any cooler up your way atm ? 02:10:35 I'll check 02:10:54 rdrop-exit, we are getting lovely Antarctic wind up here and lower temps 02:11:14 not so nice further south or down in Tasmania tho 02:11:18 yes, it's cloudy and cool today, 32C 02:11:43 woo 02:12:06 was a max of 22c today here 02:12:30 some places in victoria are -2C atm 02:12:53 and a lot of snow in our alpine regions 02:13:11 "What is Forth? ... While most people think of it as a language, it is an operating system and an interpreter to its users, and an interactive compiler and an extensible data structuring tool to its programmers" -- Ronald Zech 02:15:03 I dislike anything below 21C 02:15:17 Im ok down to 19C 02:15:51 thats 2 degrees of separation.... 02:16:16 :) 02:17:52 "Forth also retains some of the main advantages of assembly language, 02:17:52 including being in complete control of the machine and being able, to a large extent, 02:17:55 to control one's programming environment appropriately to the problem" -- Ronald Zech 02:19:23 I think we should ask CRC to make up a big file of Forth slogans and have his retro bot print one every hour :) 02:19:36 yes!!! 02:19:56 or print one when asked 02:20:23 ir just typing "retro?" gets the next slogan 02:20:36 for when you need a "fix" of Forth thinking 02:20:50 or Forth propaganda ;-) 02:22:51 @-@ obey 02:24:55 @-@ 02:24:55 | 02:24:55 ~ 02:25:04 :)) 02:39:34 --- quit: dddddd (Ping timeout: 256 seconds) 02:49:14 tabemann: I think the right approach with assembly in forth sometimes might be to actually have words that represent the different opcode and parameter components 02:49:33 And then have some mnemonics halfway between assembly and machine code 02:50:13 This would let you have a much smaller assembler, but might make writing assembly too hard. 02:51:19 IIRC Tabemann is writing a disassembler atm 02:51:32 I want to try and do this with Z80 when I get to it, see if I can learn to write Z80 assembly like that 02:51:51 Ah right 02:51:58 I think this still applies though 02:52:31 veltas, just use C d00d3, you know you wanna! 02:52:54 tp: I don't get it 02:53:09 Forth is great for writing interactive assemblers 02:53:22 veltas, thats because you dont have your secret #forth decoder ring! 02:54:07 * veltas in blissful ignorance 02:54:31 * tp leads a mainly blissful life ;-) 02:55:17 but of course whether its a pleasure or a chore depends on the regularity of the ISA 02:56:32 veltas, I'm trying to be sarcastic while writing a page on the differences and similarities of C and Forth in embedded 02:57:02 tp: Okay, I look forward to reading the page if you release it then 02:57:02 writing an assembler for the entire x86-64 ISA would be a nightmare 02:57:17 veltas, I release everything when it's finished 02:57:38 Terry Davis wrote an x86-64 assembler, I wonder how comprehensive it was 02:58:07 because these things are so complex, no one really knows ... 02:58:47 The last x86 assembler I wrote was for 386 (or maybe 486 I can't remember) 02:59:08 in fact modern compilers are so complex, no one understands them, so the compilers are treated like Gods by the users 02:59:50 simply becaue if humans dont understand things, they turn them into gods 03:00:08 the god of thunder, rain, fertility etc 03:01:03 LLVM makes the situation more layered but the individual layers are still these big things few people really understand 03:01:58 GCC is actually a relatively sane compiler as things go 03:02:14 and now we have the god of C compilers, it knows all and sees men as lowly things, tapping away their lives writing code and praying the Great God of C will protect them from undefined results etc 03:02:43 veltas, so men say .... 03:03:19 veltas, someone recently asked 'what percentage of opcodes does Gcc actually use?' 03:03:26 Personally I think that the less bloated alternative to mainstream compilers is to write purpose-built compilers for one language/dialect. 03:03:29 veltas, and no one was sure 03:03:39 Why does that matter to you? 03:04:03 it doesnt matter to me, but it mattered to the poster 03:04:21 turns out that Gcc uses about 20% of the available opcodes 03:04:27 You act like all the opcodes are useful to general programming problems. In fact a lot of the ones that aren't are basically assumed that will only be used through assembly or compiler intrinsics 03:04:33 --- quit: jsoft (Ping timeout: 272 seconds) 03:04:34 Okay the poster acts like 03:04:38 as many are too complex to be reliably used 03:04:43 But still I wonder why people analyse it like this 03:04:51 I bet whoever asked this has never read the Intel manual 03:05:13 Ive no idea 03:05:25 on the other hand, they may know it intimately 03:05:33 I have read a subset of the x86 manuals and written system-level and application-level assembly in free time and at work and I know that many instructions are pointless to general purpose computing like C output 03:05:51 So this does not surprise me 03:06:59 And this would be the case in a good forth as well 03:07:37 Even just using general-purpose instructions it won't be easy to write an assembly for x86, but probably not magnitudes harder than it was for rdrop-exit to write a 386 assembler 03:11:00 veltas, this is the OPs question: https://www.eevblog.com/forum/programming/cpu-instruction-utilization-with-gcc/msg3026150/#msg3026150 03:12:12 TLDR 03:15:37 If I were to write an x86-64 (+extensions) assembler today, I would do it incrementally, add instructions and extensions only as the need arises 03:16:35 But I can't see it worth the bother 03:18:17 --- join: TCZ joined #forth 03:20:15 If I need to write a some specialized high performance computing product for x86, I'd be more inclined to look into Intel's combined x86+FPGA offerings 03:21:26 and focus on the FPGA side 03:31:27 "Forth is an amalgamation of an operating system, a high level language system, 03:31:27 compiler, assembler, linker, loader, editor, disassembler, decompiler... 03:31:27 All the software tools required to produce some software products are included 03:31:27 in the Forth environment. 03:31:27 Forth is a tiny operating system. It occupies a position just above a system 03:31:29 development monitors." -- William H. Payne 03:32:30 (sorry about the bad formatting) 03:36:35 --- quit: rdrop-exit (Read error: Connection reset by peer) 03:36:53 --- join: rdrop-exit joined #forth 03:41:17 --- quit: reepca` (Ping timeout: 272 seconds) 03:44:31 --- quit: rdrop-exit (Ping timeout: 256 seconds) 03:49:44 --- join: rdrop-exit joined #forth 03:50:28 "Forth should be studied by all programmers. It embodies all 03:50:28 aspects of software but in a simple framework." -- William H. Payne 04:06:07 --- quit: dave0 (Quit: dave's not here) 04:06:30 --- quit: rdrop-exit (Ping timeout: 258 seconds) 04:09:27 --- join: rdrop-exit joined #forth 04:14:47 --- join: rdrop-ex1t joined #forth 04:14:59 --- quit: rdrop-exit (Read error: Connection reset by peer) 04:43:13 --- quit: rdrop-ex1t (Quit: Lost terminal) 05:51:14 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 05:54:50 --- quit: TCZ (Quit: Leaving) 06:28:53 --- join: TCZ joined #forth 06:43:21 --- join: merkc0 joined #forth 06:45:06 --- quit: TCZ (Quit: Leaving) 06:52:44 --- join: jsoft joined #forth 06:56:47 --- join: TCZ joined #forth 06:58:03 --- join: dddddd joined #forth 06:58:13 --- quit: Zarutian_HTC (Ping timeout: 260 seconds) 07:57:55 --- quit: TCZ (Quit: Leaving) 08:00:05 tp: this example is incorrect https://mecrisp-stellaris-folkdoc.sourceforge.io/c-forth-examples.html 08:00:31 You wrote |= ~1 to set a bit, that would set all but that bit 08:02:55 Your third C example would be written TIM3->CR1 & 1 or (TIM3->CR1 & 1) != 0 08:21:02 --- join: Zarutian_HTC joined #forth 08:29:43 regarding op code utilization 08:31:54 I read somewhere in an old risc paper or such that one should try to get more than one instruction per ten thousand instructions 08:35:17 per possible opcode 08:39:34 I don't really get these metrics just seems a bit puritan 08:50:33 those metrics is more of a rule of thumb than anything 08:50:52 Why is it a rule of thumb though 08:51:23 --- join: TCZ joined #forth 08:52:04 having an opcode space between 17 to 256 possible makes designing the hardware decoding much easier 08:52:24 tp: I think I should write an example driver for a simple peripheral for you in C sometime, influenced by how people around me at work write them and also my own take on 'good' embedded C 08:53:04 So you know what to compare to when you compare Forth and C, because I don't really see code like you've written outside of stuff that's 20+ years old and was only ever intended as throwaway code anyway 08:53:19 and having a such smaller opcode space makes sure that all of the revelant circuitry is exercised 08:53:20 (I mean you've written as a C example) 08:54:12 Zarutian_HTC: Have you designed a CPU, out of interest? 08:55:02 parts there of, some in electromechanical implementation 08:55:06 I'm not trying to tear you down just wondering, it's something a lot of people used to do. I remember seeing some kid make a CPU in minecraft but it wasn't a novel CPU arch, it was taken from a good book 08:55:17 Zarutian_HTC: What parts, like an ALU? 08:55:45 Op decoding logic or something? 08:56:10 and I have played around with J1 from excamera, and some of the dual stack machinrs from Koopmans book 08:56:50 op decoding logic using rom logic techniques 08:58:01 but also combinatoric logic implementation 08:58:12 --- quit: Lord_Nightmare (Quit: ZNC - http://znc.in) 09:01:18 I quite like dual stack machines as ALU ops can all be happening concurrently to opcode decode. Only the desired ALU function output needs to be selected 09:03:08 and if main, work andor program memory is dual ported then memory fetch can also be one of the concurrent operations 09:06:46 --- join: Lord_Nightmare joined #forth 09:26:24 --- quit: gravicappa (Ping timeout: 264 seconds) 09:35:03 --- join: WickedShell joined #forth 09:56:24 --- quit: TCZ (Quit: Leaving) 10:20:05 --- join: gravicappa joined #forth 10:34:36 --- quit: jsoft (Ping timeout: 240 seconds) 10:57:39 --- quit: merkc0 (Ping timeout: 272 seconds) 11:48:49 --- quit: WickedShell (Remote host closed the connection) 12:20:43 --- quit: Keshl (Read error: Connection reset by peer) 12:21:02 --- join: Keshl joined #forth 12:37:15 --- quit: Zarutian_HTC (Ping timeout: 265 seconds) 13:15:02 --- join: Zarutian_HTC joined #forth 13:30:22 --- join: TCZ joined #forth 14:18:54 --- join: corn joined #forth 14:19:05 Good afternoon, creatures of Forth 14:20:44 If I just want something to play with, is the Blue Pill a good choice? I want something either ARM or RISC just to mess around with 14:21:07 s/RISC/RISC-V 14:21:25 but RISC-V stuff looks expensive from what I can see 14:24:47 corn: here you go: http://tice.sea.eseo.fr/riscv/ 14:27:39 that's not hardware :( 14:28:54 I want a piece of silicon that I can throw around and smell and taste 14:35:00 you cant smell silicon but you can probably smell the outgassing of the polycarbon package around the silicon chip 14:35:35 yes that and I want to taste it too 14:36:50 but I get what you are getting at 14:41:27 most of the risc-v silicon implementations I have seen so far have been univeristy funded and made at TMSC in low volume batches at older feature sizes 14:42:54 * Zarutian_HTC flips through bookmarks sees http://members.chello.at/~easyfilter/bresenham.html and reposts the link here 14:44:51 --- quit: corn (Ping timeout: 265 seconds) 14:45:56 the corn went off the cob 14:46:12 --- join: corn joined #forth 14:46:55 --- quit: gravicappa (Ping timeout: 272 seconds) 15:06:25 --- quit: corn (Remote host closed the connection) 15:40:37 --- quit: TCZ (Quit: Leaving) 16:07:28 veltas, you're right! I've taken that page down. My site is for Forth, people who want to learn C for embedded can do that elsewhere 16:08:55 Fair enough 16:09:38 veltas, hahah, you're going to write a 'example driver for a simple peripheral in C' for me ? please don't bother, I have no use for 'drivers', especially in C 16:09:59 Well my def of driver is closer to what CP/M would call a driver 16:10:01 But sure okay 16:10:17 I guess I won't bother since you seem to enjoy complaining about C enough already ;) 16:10:29 I use Forth to program complex peripherals, each one is tailor made for the application at hand. 16:13:58 veltas, I complain for what I consider excellent reasons, such as incomplete online C examples posted by C users 16:16:01 Well I think that is why I offered what I offered, because it would be complete. But I think I see why that would not solve the problem because the incomplete examples still exist 16:16:06 regardless of what I do 16:16:08 veltas, if these incomplete examples were a rarity I wouldn't bother complaining, however they are endemic, perhaps a indication of the unsuitability of C for use as embedded examples ? 16:16:34 Complain about the C community all you want I don't really know or work with 'mainstream' embedded C stuff, as far as I know. 16:16:47 veltas, one properly written C example hardly fixes the problem 16:18:26 and I don't mean 'perfect and up to date coding' by 'properly'. I mean INCLUDING ALL the essential information, such as memory mapping etc 16:18:48 I could complain about C's inappropriateness too and I do. I think you're a bit too harsh on it, I might be biased because I have 99 problems with the way embedded software engineering is done and C only makes up a comparitively less egregious handful of those things 16:19:00 And I have to write C for work so there is that too 16:19:17 Maybe it's easier for me to believe it's not totally incapable at the thing I am supposed to be doing for money lol 16:20:49 veltas, C is ok, I've said before that I like it, I can read it, Ive used it to make money myself, but I think it's a disaster in the embedded space. I think C should stick to PC programs 16:21:54 veltas, I think one issue is that C systems programmers naturally feel that if C is good for what they do, then it must also be good for embedded development. I have the opposite opinion 16:23:50 Yeah maybe they do I don't know, I mostly write baremetal software 16:24:53 veltas, I'm replacing my ancient "c and Forth examples" page with the new "Keil C and Forth" programming peripherals page, Ive learnt a lot already, and there should be a lot more for you to critique :) 16:25:22 I was just trying to help with that other page because it has a mistake and a bit missing 16:25:26 had* 16:26:26 veltas, I think our understanding of 'baremetal' is quite different 16:26:46 Er baremetal as far as software gets 16:26:48 veltas, and I tank you for it, that page was a discrace 16:26:55 +h 16:27:50 I'm assuming you are not assuming what kind of software I write and this is just a general thing about software on the hierarchy for you? 16:28:03 the new page only compares a Forth method for programming embedded peripherals to the way that Keil do it in C 16:28:27 a double assumption ? 16:28:37 assumption squared ;-) 16:29:20 veltas, I have no idea what you write, but regardless, I can tell that you and I have very different understanding of the term 'baremetal' 16:30:55 Okay 16:31:27 I see C programmers using "baremetal" all the time, and they have no idea that C doesnt even come close to that level, it's more a mantra I think ... i.e. "C is baremetal" 16:32:39 Is x86 baremetal? 16:34:10 I dont know anything about X86, I have ever only done small embedded 16:34:40 All I know is that sometimes in my job I am literally diagnosing specific lines of broken metal on boards so it feels very metallic to me 16:34:55 but Im guessing no, because all the hardware on x86 is accessed thru the BIOS ? 16:35:33 hehe, looking at broken copper tracks on mobos you mean ? 16:35:47 Sometimes 16:37:14 Single board computers, so not really a 'motherboard' 16:37:59 When I wrote my first C program for X86 back in 1998, I used direct hardware access of the parallel port, and when I released that under the GPL I soon received a driver to replace that code from a user who said I shouldnt try and access hardware directly, and his suggestion made sense 16:38:39 veltas, aha, I see 16:39:02 veltas, thats definitely 'bare metal' in that case 16:39:04 The main piece of software I work on can't use 'drivers' for an OS and controls hardware 16:39:42 It literally runs before the 'BIOS' even starts (UEFI in our case for x86) 16:39:58 aha, makes sense 16:40:57 sounds like POST related ? 16:41:30 Yes it's like a POST 16:41:35 But more sophisticated 16:43:59 I have a Intel mobo with a 4 digit HEX LED display for POST on this PC. I can see it running thru the case. It also has activity leds for each core which makes lock up easy to see. 16:45:03 in 1985 when I designed and build a hospital solutions bottle filling controller, I found that my self test code was about the same amount as the actual program code 16:45:23 so I've used that 50/50 rule ever since 16:45:30 Cool 16:46:19 good self test code can be quite complex 16:46:50 complex only in the detail of the tests and control it may perfoem 17:03:01 hey guys 17:03:07 hey tabemann 17:05:17 tabemann, love your dissasembler code! 17:07:05 it's still got a lot of ways to go, but I feel I optimized it pretty well 17:07:20 optimized for space rather than for speed 17:07:54 this is code where I want to minimize inlining 17:08:42 speed isnt a issue when analysing code is it ? 17:08:51 yeah 17:08:56 especially small embedded code 17:16:26 I even shrunk the word names for the sake of optimization! 17:16:52 p rather than parse saves a whole cell per word 17:17:40 which is important because there will be a lot of words 17:18:17 cool, I often use single letters when testing 18:09:48 --- join: dave0 joined #forth 18:11:56 --- join: X-Scale` joined #forth 18:13:13 --- quit: X-Scale (Ping timeout: 256 seconds) 18:13:13 --- nick: X-Scale` -> X-Scale 18:16:15 --- join: iyzsong joined #forth 18:20:47 --- join: jsoft joined #forth 18:39:31 --- join: jedb_ joined #forth 18:41:54 --- quit: jedb (Ping timeout: 246 seconds) 18:42:45 --- join: boru` joined #forth 18:42:48 --- quit: boru (Disconnected by services) 18:42:51 --- nick: boru` -> boru 18:46:13 --- quit: kori (Read error: Connection reset by peer) 18:58:48 --- quit: cheater (Ping timeout: 264 seconds) 19:01:32 --- quit: phadthai (Quit: brb) 19:05:03 --- join: phadthai joined #forth 19:07:00 --- quit: dddddd (Remote host closed the connection) 19:16:50 --- join: cheater joined #forth 19:33:37 --- quit: dave0 (Quit: dave's not here) 19:59:25 --- join: rdrop-exit joined #forth 21:07:52 hello knights of the Forthdom 21:09:50 greets he that tilts at onboard forths ! 21:10:30 rdrop-exit, just the parson I wanted to see! 21:10:41 I'm not a parson 21:10:47 (spoken in a Irish accent) 21:10:51 :)) 21:12:16 what's up? 21:12:21 rdrop-exit, I'm doing a doc page on the differences between configuring a cortex-m peripheral (in this case the system clock) with Keil C and Forth 21:13:01 you're so obsessed with c 21:13:12 this is the first time Ive looked at a modern system like Keil who are considered a leader in the embedded C space, and in fact owned New York ARM holdings 21:13:21 oops 21:13:34 -New York 21:13:47 (how did that get in there?) 21:13:52 :)) 21:14:26 well I spend a lot of time debating with C users as C is the defacto standard in embedded 21:15:16 Forth is barely known in the embedded space, so the debates are quite understandable 21:15:53 I don't bother, I'm just happy I learned Forth before C 21:16:37 plus, unfortunately, C is also the defacto example and often the defacto explanation for how hardware works in the ARM documentation 21:17:02 "portable assembler" :) 21:17:14 even if it never was completely that 21:17:42 it's a bit like kids go to school to learn how to use a computer, but all they learn is Microsoft Word, Excel and Powerpoint 21:18:29 C as its place as the lingua franca of the UNIX/POSIX world, but I agree with you on code examples for embedded, they should only give a C example as a supplement to a asm example, not instead of an asm example 21:18:31 "But can it do Youtube?" 21:18:34 as tho somehow learning three microsoft apps embodies "using a computer" 21:18:39 hahahah 21:19:46 rdrop-exit, exactly, but even a ASM example can be a bit hll, sometimes a description, a truth table etc is all thats needed 21:20:41 it reminds me of the IBM mainframe world, they had their own worldview and jargon, it was difficult to get an IBM mainframe guy to think outside that box 21:20:43 personally Im opposed to the use of a programming language to explain how hardware works, I think it is a cheap and lazy cop out 21:21:08 I agree 21:21:39 sure, I think it's understandable, a bit like expecting a foreigner to understand your parochial slang, even if it's 'based' on english 21:22:14 right 21:22:40 naturally, this process is a human condition, and requires a special mentality or training to overcome it's inevitable use 21:23:13 take the Chrysler 'lean burn engine' development in the 70's ? 21:23:55 at one point, nobody from the electronics engineering dept was talking to the anyone at the mechanical engineering dept at chrysler 21:24:14 I remember you mentioned this before 21:24:18 both disciplines were convinced the other guys were talking bs 21:24:29 they honestly believed it 21:24:49 and all it was that their disciplines were so different 21:25:24 that's why having cross-disciplanry guys on a team is so important 21:25:43 so misunderstandings between C and Forth users is to be expected because both languages are so different 21:25:49 rdrop-exit, agreed 21:25:52 someone who groks both gestalts 21:25:58 rdrop-exit, *if you can find any* 21:26:08 brb 21:26:15 probably rare nowadays 21:26:21 ok 21:33:43 --- quit: rdrop-exit (Quit: Lost terminal) 21:38:41 rdrop-exit: I grok both Forth and C. The former is concative programing paradigm while the latter tries to be formulatic and top down structured 21:39:19 tp: ^ 22:00:12 Zarutian_HTC, ? 22:00:27 Zarutian_HTC, aha 22:00:54 In my case, Im just a technician who is somewhat familiar with both in the embedded space 22:01:25 I have varous types of both set up here, and have used all the different kinds that I could 22:41:46 --- join: gravicappa joined #forth 23:39:25 --- quit: _whitelogger (Remote host closed the connection) 23:41:20 --- quit: jsoft (Ping timeout: 260 seconds) 23:42:28 --- join: _whitelogger joined #forth 23:59:59 --- log: ended forth/20.05.02