Search found 263 matches
- Mon Nov 18, 2019 8:58 pm
- Forum: Bug
- Topic: Crash when using coroutines
- Replies: 11
- Views: 52554
Re: Crash when using coroutines
Thanks, this makes it a lot clearer, however, coroutines always come as pairs (Coroutines.Coroutine, Kernel.Coroutine) where Coroutines.Coroutine.impl points to the lower-level Kernel.Coroutine object. There should never be a dangling pointer because .impl is a tracked pointer. Whenever a Coroutines...
- Sun Nov 17, 2019 8:31 pm
- Forum: Bug
- Topic: Crash when using coroutines
- Replies: 11
- Views: 52554
Re: Crash when using coroutines
thanks for the bug report and the careful analysis. There was a similar issue reported by Robert some time ago but we were not able to reproduce it and thus have given up on it. It is possible, and even likely, that the issues are related. The proposed bug fix is simple and looks appealing. However,...
- Wed Nov 06, 2019 6:33 am
- Forum: Feature
- Topic: Strings concatenation optimisation
- Replies: 14
- Views: 56571
Re: Strings concatenation optimisation
As far as I have seen in the compiler output there are two aspects here. One is the usage of an extra buffer and the other is the copying of s in a pattern like s := s + ...; The BB compiler optimized the first aspect, i.e. it tries to avoid an extra buffer when it is save to do so. So far, I don't ...
- Fri Nov 01, 2019 9:01 am
- Forum: Feature
- Topic: Strings concatenation optimisation
- Replies: 14
- Views: 56571
Re: Strings concatenation optimisation
What about s := s + "xxx" + s; , such operation is now decomposed into three operations: s := s; s += "xxx"; s += s; And the buffer overflow check happens in every operation here. And the search for the final 0X occurs here even twice. If s = "" at the beginning, then ...
- Sun Oct 27, 2019 8:19 am
- Forum: Feature
- Topic: Strings concatenation optimisation
- Replies: 14
- Views: 56571
Re: Strings concatenation optimisation
> the output code is correct, Oleg complain the qulity of the output code: Thanks for the clarification. In general, when optimizing statements like s := s + ... ; one must be careful about detecting the correct pattern. The following statement may fail if there is no buffer allocated for the result...
- Sat Oct 26, 2019 6:52 am
- Forum: Feature
- Topic: Strings concatenation optimisation
- Replies: 14
- Views: 56571
Re: Strings concatenation optimisation
I cannot see the problem with statements like s := s + "xxx" in BB.
Can you give an example test case that fails in BB?
- Josef
Can you give an example test case that fails in BB?
- Josef
- Sun Sep 22, 2019 7:05 pm
- Forum: MultiOberon
- Topic: MultiOberon as 64-bit compiler
- Replies: 9
- Views: 395534
Re: 64-bit compiler
Interesting approach!Ivan Denisov wrote:Try the compiler MultiOberon for x64.
https://forum.oberoncore.ru/viewtopic.php?f=157&t=6423
Are there any numbers available regarding compilation speed and execution speed?
- Josef
- Thu Aug 08, 2019 10:08 pm
- Forum: Feature
- Topic: Additional Guard & Notifier signature
- Replies: 2
- Views: 19077
Re: Additional Guard & Notifier signature
why can't you use integers 0 and 1 for the boolean case?
- Tue Aug 06, 2019 6:12 am
- Forum: Common questions
- Topic: Utf8 converter is missing in HostTextConv.
- Replies: 12
- Views: 47657
Re: Utf8 converter is missing in HostTextConv.
yes, it is a bit tricky, but it should work.
- josef
- josef
- Wed Jul 31, 2019 5:06 pm
- Forum: Common questions
- Topic: Utf8 converter is missing in HostTextConv.
- Replies: 12
- Views: 47657
Re: Utf8 converter is missing in HostTextConv.
I am not sure that this loop is correct with respect to handling the very last character.
- Josef
Code: Select all
ReadChar(r, ch);
WHILE ~r.rider.eof DO
ReadChar(r, nch);
IF (ch = CR) & (nch = LF) THEN ReadChar(r, nch)
ELSIF ch = LF THEN ch := CR
END;
wr.WriteChar(ch);
ch := nch;
END;