Giter VIP home page Giter VIP logo

area9innovation / flow9 Goto Github PK

View Code? Open in Web Editor NEW
567.0 567.0 35.0 1.7 GB

Platform for safe, easy and productive programming of complex, multi-platform apps with a modern user interface

License: Other

QMake 0.11% Python 0.51% CMake 0.06% C++ 18.03% Java 2.12% Makefile 0.44% C 48.25% Objective-C 0.84% Shell 2.15% Roff 1.04% Assembly 0.45% SAS 0.04% Smalltalk 0.03% WebAssembly 0.05% HTML 25.58% Module Management System 0.05% M4 0.03% DIGITAL Command Language 0.03% Batchfile 0.05% Awk 0.13%
compiler flow flow9 library ui

flow9's People

Contributors

alexandrrzz avatar alstrup avatar artxp avatar brawaga avatar bvaschenko avatar chekaninmaxim avatar coolrunner86 avatar dimabure avatar discane avatar dmitry-vlasov avatar dmitrys99 avatar eugeny48 avatar evmaksimenko avatar gpastore avatar malkovl avatar nikitafil avatar pavelzherdin avatar plartem avatar pleaseking avatar pzotov avatar rusartm avatar sergeymaksimov avatar shkel avatar stanislavpodolia avatar vadlis avatar vereschagai avatar vol-kharchenko avatar yegordovganich avatar ykuzmenko73 avatar ysamoylenko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flow9's Issues

REPL for flow

Is there a REPL for flow, where I can execute line by line interactively?
If not, then please please implement it.

Typo in doc/linux.markdown

Line 282:

qtchooser -install qt512 ~/Qt/5.12.0/5.12.0/gcc_64/bin/qmake
                             ^

replace with

qtchooser -install qt512 ~/Qt5.12.0/5.12.0/gcc_64/bin/qmake

Support for flow in GitHub

I've started the process for having flow recognised in GitHub -- this means that .flow files will be correctly recognised/categorised. We'll need to wait for a bunch more flow repos to appear first, but I thought getting the ball rolling can't hurt.

For syntax highlighting, we currently need a TextMate-compatible grammar. Is there one particularly suitable? I notice there's two different Flow.tmLanguage files in this repository.

flow vm error on android.

run bytecode https://github.com/hey-sancho/flow_memorygame from Android , VM crashed immediate.

06-23 15:01:01.519 24010 24010 D ViewRootImpl@22ab8ba[FlowRunnerActivity]: setView = DecorView@a55836b[FlowRunnerActivity] touchMode=true
06-23 15:01:01.521 24010 24010 I dk.area9.flowrunner: Received intent: android.net.conn.CONNECTIVITY_CHANGE
06-23 15:01:01.524 24010 24010 D ViewRootImpl@66470dc[FlowRunnerActivity]: dispatchAttachedToWindow
06-23 15:01:01.530  1309  3759 V WindowManager: Relayout Window{9aacbfdd0 u0 dk.area9.flowrunner/dk.area9.flowrunner.FlowRunnerActivity}: viewVisibility=0 req=949x460 WM.LayoutParams{(0,0)(wrapxwrap) gr=#11 sim=#120 ty=2 fl=#1820002 fmt=-2 wanim=0x1030002 needsMenuKey=2 naviIconColor=0}
06-23 15:01:01.531   724   724 I SurfaceFlinger: id=768 createSurf (1x1),1 flag=4, GlowRunnerA
06-23 15:01:01.540 24010 24084 I dk.area9.flowrunner: Flow compiler (3rd generation)
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: Invalid Tag: str (string expected, void found)
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: Error during last opcode [0x119fa5]: 7
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: Location: <native>
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: DataStack.size() = 2339, CallStack.size() = 6hp = 12ef3ac, HeapStart = 0x11a000, HeapEnd = 0x211a000
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner:    0x00119fa5:	Last
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #0  0x00119fa5 in <native>
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #1  0x00010b24 in strlen
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #2  0x00010a77 in strReplace
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #3  0x0003da07 in getFlowDir
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #4  0x000418a7 in getCompilerConfig
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #5  0x001196fe in main
06-23 15:01:01.540 24010 24084 E dk.area9.flowrunner: #6  0x00119fa3 in --end--
06-23 15:01:01.541 24010 24084 I dk.area9.flowrunner: MAIN FAILED

vscode support

README says support in "Visual Code". Assuming you mean VSCode, it does not exists. Searched in VSCode extensions for "flow", everything is for flow-type. Searched for "flow9", no result.

How to compile to nodejs?

Trying to compile simple program to nodejs:

import runtime;

main() {
	println("hi");
}

flow --js hi.js src/hi.flow, node hi.js:

Platform.isAndroid = new EReg("android","i").match(window.navigator.userAgent);
                                                   ^

ReferenceError: window is not defined

Found nodejs option seems to exists in source.

flow --nodejs hi.js src/hi.flow

Got:

 Exception from eval: I could not make native Native.getKeysList: Could not find native getKeysList in Native. Recompile flowrunner.hxml, flowflash.hxml

No out.js produced.

Support for High DPI screens

Does this language have any support for high-DPI screens? I mean proper scaling where things don't get blurry (caused by scaling rendered picture) but just rendered with more pixels.

I've just run flowcpp demos/demos.flow on Windows 10 and it's really hard to read anything in the app on my laptop which is 14-inch screen with resolution 2560x1440 and the scaling set to 200%.

Suggestion: Reduce sequential pipe forward chaining wrapper

Instead of

sumSqr = [0,1,2,3,4,5,6,7,8,9]
	|> (\l -> filter(l, \x->x%2==0))
	|> (\l -> map(l, \x->x*x))
	|> (\l -> fold(l, 0, \a, x -> a+x));

Most FP languages removes the need of the wrapper function:

sumSqr = [0,1,2,3,4,5,6,7,8,9]
	|> filter(\x->x%2==0)
	|> map(\x->x*x)
	|> fold(0, \a, x -> a+x)

Method Jwts.parserBuilder() not found

Hi.
I caught such an error:

$ ./flowjava
~/Desktop/flow9/platforms/java ~/Desktop/flow9/bin
com/area9innovation/flow/FlowJwt.java:29: error: cannot find symbol
Jwts.parserBuilder().setSigningKey(getSecretKey(key)).build().parseClaimsJws(jwt);
^
symbol: method parserBuilder()
location: class Jwts
com/area9innovation/flow/FlowJwt.java:60: error: cannot find symbol
Claims jws = Jwts.parserBuilder().setSigningKey(getSecretKey(key)).build().parseClaimsJws(jwt).getBody();
^
symbol: method parserBuilder()
location: class Jwts
Note: javafx/com/area9innovation/flow/javafx/FxLoader.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

I am using

$ java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.18.04)
OpenJDK Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.18.04, mixed mode, sharing)
$ javac -version
javac 11.0.9.1

Isn't that cause the source code references an abstract API, instead of an implementation?

Such a modification

LIBS=$BASE_DIR/platforms/java/lib/java-websocket-1.5.1/*:$BASE_DIR/platforms/java/lib/jjwt-api-0.10.8/jjwt-impl-0.10.8.jar:$BASE_DIR/platforms/java/lib/jjwt-api-0.10.8/jjwt-jackson-0.10.8.jar:$BASE_DIR/platforms/java/lib/jjwt-api-0.10.8/jjwt-api-0.10.8.jar

did not help.

Basic Linux install fails on Ubuntu 18.04

I am completely new to flow. When I try to follow the basic installation instructions on https://github.com/area9innovation/flow9#installation, the response to
flowcpp demos/demos.flow is:

/home/wkh/opt/flow9/platforms/qt/bin/linux/QtByteRunner: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

git lfs pull does nothing.

After working through this first issue by globally installing a copy of libpng12.so.0 into /lib/x86_64-linux-gnu,
flowcpp demos/demos.flow results in:
/home/wkh/opt/flow9/platforms/qt/bin/linux/QtByteRunner: error while loading shared libraries: libQt5WebSockets.so.5: cannot open shared object file: No such file or directory

Rather than chasing further, at this point it is seeming likely that the expected installation path is more like that on
https://github.com/area9innovation/flow9/blob/master/doc/linux.markdown#compile-flow-itself

Is there an installation process for (potential) flow users rather flow developers?

macOS 10.13: greadlink: command not found

TLDR: Please add a mention of the (current) requirement to run brew install coreutils on macOS to the main README's installation instructions.

(EDIT: Basically rewrote this description to be more concise and actionable.)

I get this error on macOS:

$ git clone https://github.com/area9innovation/flow9.git  # f060aca8d
...
$ cd flow9
$ ./bin/flowcpp ./demos/demos.flow
./bin/flowcpp: line 11: greadlink: command not found

Because the installation instructions forgot to mention the dependency on coreutils.

This is described in doc/mac.markdown#install-greadlink though (found via doc/readme.markdown):

## Install `greadlink`

This command will install the GNU version of `readlink`, and a bunch
of other GNU utilities.

    brew install coreutils

The GNU versions names' have a `g` prepended, e.g. `greadlink`, so
having them around won't conflict with your Mac's built-in versions.

`greadlink` is needed because the scripts for running Flow assume the
GNU semantics, so they won't work with the standard Mac `readlink`.
(Note that fixing that wouldn't actually be very hard.)

How to prevent definitions leaks from imports? (namespace is currently global)

defined a function called sum.

Compiler errors on "Duplicate name 'sum'" if I import fs/filesystem;

No error if not importing fs/filesystem;

2 issues here.

  1. How to avoid importing everything in fs/filesystem when I want to import only selected ones?

  2. Worst, seems like sum was leaked from fs/filesystem due to it importing:
    math/md5 -> math/bits -> math/math where sum was defined.

Win 10 QtByteRunner.exe issue

Not sure what goes first home page installation or windows.markdown instructions.
Did Windows.markdown first then on trying the step 4 on readme.md

Cd into the flow9 directory and compile and run the first program:

c:/flow9> flowcpp demos/demos.flow

I get a report from Win 10 that QtByteRunner.exe is a 16bit program and won't run on 64bit.

Win 10 flowcpp sandbox/hello.flow test failed

When I run the test script. The Window appears then disappears by itself. Below is the console.

>flowcpp demos/demos.flow

>python D:\github\flow9\bin\\flowc1 file=demos/demos.flow bytecode=demos.bytecode debug=1
Error occurred during initialization of VM
Could not reserve enough space for 3145728KB object heap

How do I resolve this?

Support for Gradle (C++)

Hi. I wonder if end-users of Flow could find any real advantage in build automation of corresponding C++ backend.

https://guides.gradle.org/building-cpp-libraries/
https://blog.gradle.org/introducing-the-new-cpp-plugins

I have some options for involving experts in writing Gradle plugins - and they are mostly not from Gradle Inc. They are unaware of helping. Plus someone from Gradle can come up with something, after investigating C++ backend and typical pipelines/code generation. My suggestion is that we can use Gradle's plugin system to implement custom plugins for some specific tasks. Some might be CI/CD related and some might target generating specific performance auto-tests.

Ivan

Incorrect usage of flowRoot in VSCode

In VSCode plugin there is a minor inconsistency in the usage of flowRoot. The default value of root is .../flow9. And the config snippet specifies ${flow.root}/bin/flowcpp as the compiler. However, if this path is specified, the server would not automatically launch: in method launchFlowcHttpServer of tools.ts, projectRoot is used without .../bin.
Of course, that is easy to work around by simply specifying path with .../bin, and manually editing run configuration each time (or simply editing the snippet manually). But in the long term, this should be fixed either by adding .../bin to tools.ts method, or by removing this part from config snippet, and updating the corresponding documentation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.