Jump to content




See - Standard Execution Environment


  • You cannot reply to this topic
99 replies to this topic

#21 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 17 August 2013 - 05:21 PM

View Postjubba890, on 17 August 2013 - 02:43 PM, said:

A cool feature would be have a list of programs you can download. That would be cool

I'll start keeping a running list of SEE programs I or other people make in OP.

#22 brett122798

  • Members
  • 300 posts
  • LocationIn the TARDIS at an unknown place in time.

Posted 18 August 2013 - 04:00 PM

This project seems really great for people who know what OOP is! I'm going to take some serious look into this project, because it may just start a spark for me to come back to CC. After learning Java, Lua just seems so.. tough. OOP makes life so much easier in the long run.

And you people stop flaming this thread, I'm sure this guy hasn't worked his butt off to hear stuff like this from you all.

#23 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 18 August 2013 - 05:06 PM

View Postbrett122798, on 18 August 2013 - 04:00 PM, said:

This project seems really great for people who know what OOP is! I'm going to take some serious look into this project, because it may just start a spark for me to come back to CC. After learning Java, Lua just seems so.. tough. OOP makes life so much easier in the long run.

And you people stop flaming this thread, I'm sure this guy hasn't worked his butt off to hear stuff like this from you all.

Wow, thanks a lot. It makes my day to know someone is actually interested.

EDIT(8/19/13): Just want to leave a quick update without bumping the thread. I'm back at high school now so I probably won't be back working on this project until the weekend. I'll see what I can get done, but there will be less stuff being done. If anyone is interested in helping, you may may branch the repo and I will merge your commits on request after I've reviewed the changes. I'm a bit nit-picky about coding conventions and style, so try to keep whatever you write in the style of the current code. I'll make an update when I have time to work on things. Most likely it will be something easy like additions to the library.

#24 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 26 August 2013 - 05:25 PM

Update. (Latest commit 89d742febfb98d361038f253c60504a5e4145025) I added rgen, a program which generates a native runnable from a class archive. Using this now makes it much more convenient for end users to use programs which run with SEE. Here's an example:
#Pack code into a class archive.
see/programs/see -p someSeeProgram classArchive
#Generate a native runnable.
see/programs/rgen classArchive the.main.Class runnableFile
#Test it!
runnableFile

I haven't extensively tested this, but it does work for Omegle-CC. If anyone has issues please reply here.

EDIT: Tiny update on this (2285e220fb01992c7832a2b303a42dce451ae382 if you're interested)

#25 Symmetryc

  • Members
  • 434 posts

Posted 12 September 2013 - 09:17 PM

Seems like so much work and so little attention D:. Is there anyway to package this up with a program? Ex: When you download a LOVE2D program, you don't have to have to have LOVE2D yourself, there is a way to package it up with the program, is there anything similar for this? I think it would really increase interest.

#26 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 12 September 2013 - 09:35 PM

View PostSymmetryc, on 12 September 2013 - 09:17 PM, said:

Seems like so much work and so little attention D:. Is there anyway to package this up with a program? Ex: When you download a LOVE2D program, you don't have to have to have LOVE2D yourself, there is a way to package it up with the program, is there anything similar for this? I think it would really increase interest.

Yes and no. I've made a utility for packaging SEE programs as singular, runnable programs. However, they won't run unless SEE is installed. Packaging the entire SEE library and runtime into a program would make for large filesizes and wasted resources. A better solution would be an automatic installer packaged onto the programs, but I just haven't gotten to it. Maybe I'll see if I have time to cook something up tomorrow/this weekend.

#27 Kingdaro

    The Doctor

  • Members
  • 1,636 posts
  • Location'MURICA

Posted 12 September 2013 - 09:59 PM

To be fair, I don't think I've ever seen a LÖVE game that was even a fifth the size of the LÖVE executable itself (excluding binary files like audio, fonts or images), so in relative size, the code-to-runtime size ratio there is pretty damn small.

#28 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 12 September 2013 - 10:27 PM

The main problem is that packaging anything with my current system actually inflates it by a large amount because of the way I store the bytes in source code. For example, the Omegle-CC package http://pastebin.com/raw.php?i=ksZG8m62

#29 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 14 September 2013 - 10:07 AM

Update (latest commit c32c0b394edccc4c7c1d3b307f552388efb229f2)

The most important update here is the new program, igen. It can be used to generate an installer for SEE programs, where the generated installer will first check if SEE is installed, download the SEE updater if not, and then allow the user to pick a place to install their program. The generated installer size is by no means optimal, but at least it works, and can be distributed on pastebin (Because of the large file sizes, pastebin won't generally accept installers. I know of some ways I can shrink the file size, but I probably won't do it for at least another week unless someone is able to contribute a very trivial way of doing this.).

The usage for igen is igen <runnable> <name> <target>.

#30 sci4me

  • Members
  • 225 posts
  • LocationEarth

Posted 22 September 2013 - 01:30 PM

ERMERGERD this is so awesome! Incredible what you could do with this... the possibilities. I find this to be under appreciated. Great work!!!

#31 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 06 October 2013 - 08:25 PM

Due to school, development has been slow as molasses recently. There are some parts that need cleaning up and I just wrote up a couple issues which I'll hopefully resolve this week (#1, #2). Again, anyone can branch the project and request a merge. There are many other things which need to be addressed, and I'll get those posted as well, but those two are the most important right now.

#32 Symmetryc

  • Members
  • 434 posts

Posted 06 October 2013 - 08:31 PM

View PostYevano, on 12 September 2013 - 10:27 PM, said:

The main problem is that packaging anything with my current system actually inflates it by a large amount because of the way I store the bytes in source code. For example, the Omegle-CC package http://pastebin.com/raw.php?i=ksZG8m62
I hope you know that long string of numbers and slashes can be compressed down so much it's not even funny.

#33 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 06 October 2013 - 09:07 PM

View PostSymmetryc, on 06 October 2013 - 08:31 PM, said:

I hope you know that long string of numbers and slashes can be compressed down so much it's not even funny.

Quite aware. The problem, however, isn't compression. The problem is that I have to convert source code to a Lua string, and the way it's done right now is to just use character escape syntax. A better way is probably to go case by case and only escape problematic chars, but this isn't really a top priority right now. Definitely something I'll add to the repo issues, though!

Edit: Just realized you were proposing to compress the current string output. Since that's contained in the actual program, that's not really an option. Beforehand compression is definitely something that will be done at a later stage, though.

#34 tesla1889

  • Members
  • 351 posts
  • LocationSt. Petersburg

Posted 07 October 2013 - 12:19 PM

for future reference, __gc is only called if the metatable describes a userdata value.
for example, FileInputStream will not call __gc when the object is garbagecollected.\
__gc is pretty much pointless in CC, unless you're writing a mod or dan200 is using a non-standard version of lua

#35 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 07 October 2013 - 02:50 PM

View Posttesla1889, on 07 October 2013 - 12:19 PM, said:

for future reference, __gc is only called if the metatable describes a userdata value.
for example, FileInputStream will not call __gc when the object is garbagecollected.\
__gc is pretty much pointless in CC, unless you're writing a mod or dan200 is using a non-standard version of lua

Thanks. After a quick search, it looks like finalizers for tables were added in 5.2. I'll remove the redundant code today.

Edit: Created a new branch for testing the new event system. https://github.com/Y...e/better-events

#36 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 09 October 2013 - 06:30 PM

Lots of progress has been made! (relatively speaking) Not only is the event system fully functional, but the threading system has been completely overhauled (not that there was much work done on threads to begin with). I haven't merged all this with the master branch yet since I want to make sure everything works correctly and possibly add some changes here and there, but if you'd like to test it out just pull the better-events branch and mess around with it.

I'm not all that great at explaining things, so I'll let the example code explain itself.

see.dev.Test
[email protected] see.concurrent.Thread
[email protected] see.dev.TestEvent
[email protected] see.util.Math

function Test.main()
    Events.register("test", TestEvent)
    System.print("Hello World!")

    for i = 1, 4 do
        Thread.new(function()
            System.print("Hello from thread " .. i .. "!")

            local event = Events.pull("test")
            local message = event.message
            repeat
                System.print("T[" .. i .. "] " .. message)
                event = Events.pull("test")
                message = event.message
            until message == "stop"
        end):start()
    end

    for i = 1, 3 do
        Events.queue(TestEvent.new(Math.random()))
    end

    Events.queue(TestEvent.new("stop"))
end

see.dev.TestEvent
[email protected] see.event.Event

[email protected] see.event.Event

function TestEvent:init(message)
    Event.init(self, "test")
    self.message = message
end

Output
Posted Image

#37 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 10 October 2013 - 05:44 PM

Commit #50 (Guess I can call this a milestone of sorts.) 42c33ec39c189b5153dd8a5484b4b0af1e0a271e

After running the new system against a good number of test cases, and also converting the Omegle-CC program over to the new system, I've finally merged the changes onto the repo. Yay! Not quite sure what I want to work on next right now, but there's definitely still quite a bit more to get done.

I think the best way forward is to just start writing a few practical programs for bug testing. I can do this by myself, but it will take a while for me to produce a good number of non-trivial programs and iron out possible bugs at the same time. If you think you want to help with bug testing, just shoot me a PM or tell me here. Even if you only code something simple, or you only find a couple bugs, the help is great no matter what. If you feel up for it, you can even pull the repo and fix something yourself.

#38 distantcam

  • Members
  • 139 posts
  • LocationChunk 0

Posted 13 October 2013 - 06:50 PM

Holy creeper balls this is amazing!

As someone who's spent the last 10 years working with OOP languages and frameworks I appreciate SEE a lot.

I'm happy to help out with bug testing, it'll give me a chance to learn Lua and CC more.

#39 Yevano

  • Members
  • 376 posts
  • LocationUSA

Posted 14 October 2013 - 08:52 PM

View Postdistantcam, on 13 October 2013 - 06:50 PM, said:

Holy creeper balls this is amazing!

As someone who's spent the last 10 years working with OOP languages and frameworks I appreciate SEE a lot.

I'm happy to help out with bug testing, it'll give me a chance to learn Lua and CC more.

Glad to hear it! If you need any help with setup, shoot me a PM. I should have mentioned this earlier, but I also have a teamspeak if anyone wants to talk via voice. I should really overhaul the OP...

#40 distantcam

  • Members
  • 139 posts
  • LocationChunk 0

Posted 15 October 2013 - 01:52 AM

Alright, first bug report then. :D

The pastebin no longer installs correctly. The install script in the GitHub repo works fine, so I had to download that manually (btw why is there no simple wget program in the bios?!)

Once I got the proper install I got the simple hello world working no problems. Then I packaged it, and turned it into a self-contained program with rgen.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users