Raspberry BASIC

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - John Spikowski

Pages: 1 ... 10 11 [12] 13 14 ... 16
166
Programming Challenges / Re: SALC Rasbian 32
« on: December 03, 2019, 05:01:29 AM »
JADE (AIR submission)

Code: C++
  1. #include <jade.hpp>
  2.  
  3. MAIN
  4.     STRING s,t,r;
  5.     ARRAY<int> a;
  6.  
  7.     FOR( VAR x = 0 TO x<1000001 STEP x++ ) DO
  8.         a.push_back(x);
  9.         s += (CHAR)(x%26)+65;
  10.  
  11.         IF ( LEN(s) == 26 ) THEN
  12.             t += s;
  13.             s = "";
  14.         END
  15.     END
  16.  
  17.     r = REVERSE$(t);
  18.  
  19.     PRINT("r LEN: ",LEN(t));
  20.     PRINT("Front: ", LEFT$(r,26));
  21.     PRINT("Back:  ", RIGHT$(r,26));
  22.     PRINT("UBVal: ",a[1000000]);
  23. END
  24.  


pi@RPi4B:~/jade-dev/examples $ g++ -O3 -std=c++11 mil.cpp -ljade -o mil
pi@RPi4B:~/jade-dev/examples $ /usr/bin/time ./mil
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.08user 0.04system 0:00.12elapsed 98%CPU (0avgtext+0avgdata 9012maxresident)k
0inputs+0outputs (0major+3762minor)pagefaults 0swaps
pi@RPi4B:~/jade-dev/examples $


167
Programming Challenges / Re: SALC Rasbian 32
« on: December 03, 2019, 01:42:35 AM »
JavaScript

Code: Javascript
  1. // JavaScript - 1mil3.js
  2.  
  3. function reverseString(str){
  4.     let strn ="";
  5.     for(let char of str){
  6.         strn = char + strn;
  7.     }
  8.     return strn;
  9. }
  10.  
  11. var s = "";
  12. var t = "";
  13. var a = [1000001];
  14.  
  15. for (x = 1; x <= 1000000; x++) {
  16.   s += String.fromCharCode(((x - 1) % 26) + 65);
  17.   a[x] = x;
  18.   if(s.length == 26) {
  19.         t += s;
  20.         s = "";
  21.   }
  22. }
  23.  
  24. r = reverseString(t);
  25.  
  26. console.log("r LEN: " + r.length);
  27. console.log("Front: " + r.substring(0, 26));
  28. console.log("Back:  " + r.substring(-0, 26));
  29. console.log("UBVal: " + a[1000000]);
  30.  


pi@RPi4B:~/javascript-dev/examples $ /usr/bin/time node 1mil3.js
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
2.50user 0.27system 0:03.13elapsed 88%CPU (0avgtext+0avgdata 78340maxresident)k
38664inputs+0outputs (153major+19367minor)pagefaults 0swaps
pi@RPi4B:~/javascript-dev/examples $


168
General Discussion / MS Rust
« on: December 02, 2019, 06:52:49 PM »

169
Swift / Re: Swift RPi
« on: December 02, 2019, 03:50:31 PM »
I'm going to pass my findings over to the RPi Swift maintainer and hope he can find out why Swift runs so slow on the RPi.

170
Programming Challenges / Re: SALC Rasbian 32
« on: December 02, 2019, 05:26:34 AM »
Nim (AIR submission)

Code: Text
  1. proc reverse*(str: string): string =
  2.   result = ""
  3.   for index in countdown(str.high, 0):
  4.     result.add(str[index])
  5.  
  6. type
  7.     milarray = array[1000001, int]
  8.  
  9. var
  10.     s = ""
  11.     t = ""
  12.     r:string
  13.     a:milarray
  14.  
  15. for x in 0..1000000:
  16.     a[x] = x
  17.  
  18.     s &= chr((x mod 26) + 65)
  19.  
  20.     if s.len == 26:
  21.         t &= s
  22.         s = ""
  23.  
  24.  
  25. r = t.reverse
  26. echo "r Len: ",r.len
  27. echo "Front: ",r[0..25]
  28. echo "Back:  ",r[r.len-26..r.len-1]
  29. echo "UBVal: ",a[1000000]
  30.  


pi@RPi4B:~/nim-dev/examples $ nim c -d:release onemil3.nim
Hint: used config file '/etc/nim/nim.cfg' [Conf]
Hint: system [Processing]
Hint: onemil3 [Processing]
Hint:  [Link]
Hint: operation successful (12410 lines compiled; 0.566 sec total; 10.754MiB peakmem; Release Build) [SuccessX]
pi@RPi4B:~/nim-dev/examples $ ls -l onemil3
-rwxr-xr-x 1 pi pi 57548 Dec  1 21:21 onemil3
pi@RPi4B:~/nim-dev/examples $ /usr/bin/time ./onemil3
r Len: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
0.06user 0.05system 0:00.12elapsed 99%CPU (0avgtext+0avgdata 10048maxresident)k
0inputs+0outputs (0major+2294minor)pagefaults 0swaps
pi@RPi4B:~/nim-dev/examples $


171
Swift / Re: Swift RPi
« on: December 02, 2019, 04:11:35 AM »
I installed Swift 5.1.2 on my Ubuntu 19.10 LIVE (persistent) that runs off my laptop and here are the results of 1mil3.swift compiled.


ubuntu@ubuntu:~/swift-dev/examples$ /usr/bin/time ./main
r LEN:  999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal:  100000
0.45user 0.01system 0:00.47elapsed 99%CPU (0avgtext+0avgdata 20132maxresident)k
0inputs+8outputs (0major+5273minor)pagefaults 0swaps
ubuntu@ubuntu:~/swift-dev/examples$


172
Swift / Re: Swift RPi
« on: December 02, 2019, 02:18:22 AM »
Swift Online Playground

It runs almost instantly online as well.

173
Swift / Re: Swift RPi
« on: December 02, 2019, 01:46:49 AM »
I installed Swift for Windows and ran the 1mil3.swift (compiled) on my new laptop running Windows 10 Pro.


PS C:\Swift\examples> Measure-Command {.\main.exe | Out-Default}
r LEN:  999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal:  100000


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 305
Ticks             : 13053398
TotalDays         : 1.5108099537037E-05
TotalHours        : 0.000362594388888889
TotalMinutes      : 0.0217556633333333
TotalSeconds      : 1.3053398
TotalMilliseconds : 1305.3398



PS C:\Swift\examples>


No idea why this is so slow on the RPi 4B.

174
Programming Challenges / Re: SALC Rasbian 32
« on: December 02, 2019, 12:50:07 AM »
GO Update (AIR submission)

Code: Go
  1. // GO - 1mil3-2.go - AIR
  2.  
  3. package main
  4.  
  5. import (
  6.     "fmt"
  7.     "strings"
  8. )
  9.  
  10. // Reverse returns its argument string reversed rune-wise left to right.
  11. // From: https://github.com/golang/example/blob/master/stringutil/reverse.go
  12. func Reverse(s string) string {
  13.     r := []rune(s)
  14.     for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
  15.         r[i], r[j] = r[j], r[i]
  16.     }
  17.     return string(r)
  18. }
  19.  
  20. func main() {
  21.     var s strings.Builder
  22.     var r = ""
  23.     var t strings.Builder
  24.     var a [1000001]int
  25.  
  26.     for x := 0; x < 1000001; x++ {
  27.         a[x] = x
  28.  
  29.         s.WriteByte(byte((x % 26) + 65))
  30.  
  31.         if s.Len() == 26 {
  32.             t.WriteString(s.String())
  33.             s.Reset()
  34.         }
  35.     }
  36.  
  37.     r = Reverse(t.String())
  38.  
  39.     fmt.Println("r LEN: ", len(r))
  40.     fmt.Println("Front: ", r[0:26])
  41.     fmt.Println("Back:  ", r[len(r)-26:])
  42.     fmt.Println("UBVal: ", a[1000000])
  43.  
  44. }
  45.  


pi@RPi4B:~/go-dev/examples $ go build 1mil3-2.go
pi@RPi4B:~/go-dev/examples $ ls -l 1mil3-2
-rwxr-xr-x 1 pi pi 1763559 Dec  4 18:33 1mil3-2
pi@RPi4B:~/go-dev/examples $ /usr/bin/time ./1mil3-2
r LEN:  999986
Front:  ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:   ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal:  1000000
0.10user 0.08system 0:00.16elapsed 112%CPU (0avgtext+0avgdata 16868maxresident)k
0inputs+0outputs (0major+4032minor)pagefaults 0swaps
pi@RPi4B:~/go-dev/examples $


175
Programming Challenges / Re: SALC Rasbian 32
« on: December 01, 2019, 09:45:22 PM »
Swift 5.1.2

Looking for a faster string reverse.

Code: Text
  1. // Swift 5.1.2 - 1mil3.swift
  2.  
  3. var s = ""
  4. var t = ""
  5. var a = [Int]()
  6. var r = ""
  7.  
  8. for x in 1...1000000 {
  9.   s += String(UnicodeScalar(UInt8(((x - 1) % 26) + 65)))
  10.     a.append(x)
  11.   if s.count == 26 {
  12. //  t += s
  13.     r += s  
  14.     s = ""
  15.   }
  16. }
  17.  
  18. // let r = String(t.reversed())
  19.  
  20. print("r LEN: ", r.count)
  21. print("Front: \(r.prefix(26))")
  22. print("Back:  \(r.suffix(26))")
  23. print("UBVal: ", a[100000 - 1])
  24.  

with string reverse

pi@RPi4B:~/swift-dev/examples $ /usr/bin/time ./main
r LEN:  999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal:  100000
322.51user 0.07system 5:22.70elapsed 99%CPU (0avgtext+0avgdata 13836maxresident)k
0inputs+0outputs (0major+3470minor)pagefaults 0swaps
pi@RPi4B:~/swift-dev/examples $


without string reverse

pi@RPi4B:~/swift-dev/examples $ /usr/bin/time ./main
r LEN:  999986
Front: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Back:  ABCDEFGHIJKLMNOPQRSTUVWXYZ
UBVal:  100000
36.12user 0.04system 0:36.17elapsed 99%CPU (0avgtext+0avgdata 12800maxresident)k
0inputs+0outputs (0major+2925minor)pagefaults 0swaps
pi@RPi4B:~/swift-dev/examples $



176
Programming Challenges / Re: SALC Rasbian 32
« on: December 01, 2019, 07:28:32 PM »
C (AIR submission)

Code: C
  1. // C - 1mil3.c - AIR
  2.  
  3. #define _GNU_SOURCE
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9. #define join(write_to,  ...) {           \
  10.     char *tmp_string_for_extend = (write_to); \
  11.     asprintf(&(write_to), __VA_ARGS__);       \
  12.     free(tmp_string_for_extend);              \
  13. }
  14.  
  15. char *strrev(char *str)
  16. {
  17.     if (!str || ! *str)
  18.         return str;
  19.  
  20.     int i = strlen(str) - 1, j = 0;
  21.  
  22.     char ch;
  23.     while (i > j) {
  24.         ch = str[i];
  25.         str[i] = str[j];
  26.         str[j] = ch;
  27.         i--;
  28.         j++;
  29.     }
  30.     return str;
  31. }
  32.  
  33.  
  34. int main() {
  35.     int a[1000001] = {0};
  36.     int i;
  37.     char *s=NULL,*t=NULL;
  38.  
  39.     join(s,"");
  40.     join(t,"");
  41.  
  42.     for (int x = 0; x < 1000001; x++) {
  43.         a[x] = x;
  44.  
  45.         join(s,"%s%c",s,(x%26)+65);
  46.  
  47.         if (strlen(s) == 26) {
  48.             join(t,"%s%s",t,s);
  49.             join(s,"");
  50.         }
  51.     }
  52.  
  53.     free(s);
  54.     strrev(t);
  55.  
  56.     printf("r LEN: %lu\n",strlen(t));
  57.     printf("Front: %.*s\n", 26, t);
  58.     printf("Back: %s\n", t + strlen(t) - 26);
  59.     printf("UBVal: %d\n",a[1000000]);
  60.  
  61. }
  62.  


pi@RPi4B:~/c-dev/examples $ gcc -O3 1mil3.c -o 1mil3
pi@RPi4B:~/c-dev/examples $ ls -l 1mil3
-rwxr-xr-x 1 pi pi 8140 Dec  1 11:23 1mil3
pi@RPi4B:~/c-dev/examples $ /usr/bin/time ./1mil3
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back: ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
45.56user 63.56system 1:49.17elapsed 99%CPU (0avgtext+0avgdata 23956maxresident)k
0inputs+0outputs (0major+7535448minor)pagefaults 0swaps
pi@RPi4B:~/c-dev/examples $


177
Swift / Re: Swift RPi
« on: November 30, 2019, 10:34:14 PM »
I built and uploaded Swift 5.1.2 released on November 7, 2019 and put it on the server. I plan to create a Swift child board under Other Languages that I will added to the forum. The goal to find a mentor for each of the languages.

swift-5.1.2_armv7.tgz Download

Extract to your user directory and add PATH="$HOME/usr/bin:$PATH" to the system path.

Install dependencies.  sudo apt install clang libicu-dev libcurl4-nss-dev curl


I attached a tar -t listing of the release if you want to see what is included.

I'm looking forward to hear your experience with Swift on the RPi.



178
Programming Challenges / Re: SALC Rasbian 32
« on: November 30, 2019, 09:26:43 PM »
8th (Jalih submission)

Code: Text
  1. 1000000 constant LIMIT
  2.  
  3. a:new 0 a:push var, a
  4. "" var, s
  5. "" var, t
  6.  
  7. : rev  \ s -- s
  8.   b:new b:rev >s ;
  9.  
  10. : iterate
  11.   s @ over n:1- 26 n:mod 65 n:+ s:+ s !
  12.   s @ s:len 26 n:< not if
  13.     t @ swap s:+ t !
  14.     "" s !
  15.   else
  16.     drop
  17.   then
  18.   a:push ;
  19.  
  20. : app:main
  21.   a @ ' iterate 1 LIMIT loop
  22.   t @ rev s:len "r LEN: %d\n" s:strfmt .
  23.   dup 26 s:lsub "Front: %s\n" s:strfmt .
  24.   26 s:rsub "Back:  %s\n" s:strfmt .
  25.   LIMIT a:@ nip "UBVal: %d\n" s:strfmt .
  26.   bye ;
  27.  


pi@RPi4B:~/8th-dev/examples $ /usr/bin/time ./1mil3
r LEN: 999986
Front: ZYXWVUTSRQPONMLKJIHGFEDCBA
Back:  ZYXWVUTSRQPONMLKJIHGFEDCBA
UBVal: 1000000
10.33user 30.38system 0:40.75elapsed 99%CPU (0avgtext+0avgdata 61464maxresident)k
0inputs+0outputs (0major+3677030minor)pagefaults 0swaps
pi@RPi4B:~/8th-dev/examples $


179
Programming Challenges / Re: SALC Rasbian 32
« on: November 30, 2019, 07:42:29 PM »
The Swift round two post has been updated. The compiler now correctly prints middle.

The swift-5.1.2_armv7.tgz file is 206 MB.  I will have to upload it to the server and provide a link to download. This build is the current release with the latest updates as of build time.

AIR submitted an improvement to the Python script to not require numpy.


180
Swift / Re: Swift RPi
« on: November 30, 2019, 05:54:07 PM »
The Swift 5.12 build was successful and it built the distribution tar.gz. I screwed up with 5.11 and installed it in /usr/bin instead of /home/pi/user/bin. One should add this directory to their path.

I'll post a link or attach 5.12 once I do some basic testing.

Pages: 1 ... 10 11 [12] 13 14 ... 16