Jump to content
Sign in to follow this  
minxomat

The open source programming language Perseus - Wanna join the project?

Recommended Posts

Review Task #3

I merged the above PR to prevent any branch difficulties - please take a look at it nonetheless! Additionally, I finished the Parser today, so the rest of this part is in this PR here: https://github.com/Perseus-Dev/Perseus-Portbase/pull/11 which is also open to review!

Edit: See below.

Edited by minxomat

I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

Yay! party0045.gif

It took me about 6 hours straight, but I ported everything. And it does actually compile (the port that is). This is the minimal example we will use to iron out all remaining bugs:

link GUI entry main

func main() {
    // here be code.
}

This should generate a 2.048 byte file that when run does nothing. Needless to say, it doesn't work (yet) using the port. The port compiles fine but outputs a corrupted and misaligned 2.050 byte file. If you take a look at the hex dumps from both outputs, they are essentially the same, apart from a few byte-errors. That's whats next - fixing those errors. You can find the running port, the hex dumps and everything else in the official repo. Don't read or care about the ; TODO(minx): blah... comments yet, that's just for the future me :) . I'll start debugging some time later this weekend.


I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

@minxomat Great! Good job captian! TD :thumbsup:


A cross-platform implementation of the AutoIt language

My contributions to the AutoIt Community ##AutoIt at freenode, real-time chat

3fHNZJ.gif

Spoiler

If I have hurt or offended you in anyway, Please accept my apologies, I never (regardless of the situation) intend to do that to anybody.

Share this post


Link to post
Share on other sites

I looked at the ported code and it looks really impressive. When is the documentation going to be created? I would love to at least make one PR to this project.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites

I looked at the ported code and it looks really impressive. When is the documentation going to be created? I would love to at least make one PR to this project.

Since my last post I made great progress debugging the port. I estimate from early test that there are more than 100 bugs to fix. I'll do this alone over the next days (because it basically involves compiling a thing, printing a hexdump and then sitting down with a calculator and a pencil to figure out what went wrong - I'm not kidding). When all of the old examples compile and all their checksums match the VBNET compiler, I'll create a folder structure and split the code into more reasonable chunks :) . In this process, I'll set up the wiki and the Doc directories.

I assume I'll write a few examples of how I imagine the doc to look like and then we can start (building the doc and cleaning the code). I removed the doc team and downgraded the team member privileges, so that no accidental commits mess up the code. We're going for the fork-improve-pr way :) .

Oh, and sorry @rjframe, I rewrote all your code but there were some improvements I copied ^^


I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

"Perseus is a free (as in both beer and speech), open-source and dependency-free programming language for Windows. "

Programming language?  If so then I would suggest including Multithread functionality if possible.

Share this post


Link to post
Share on other sites

Programming language?  If so then I would suggest including Multithread functionality if possible.

Multithreading is not a programming language feature, it is a feature provided by the system API. Just call CreateThread to create a new thread.


I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

Aww, I wasn't aware of that, thanks for clearing that up.  I guess since its not a feature then I will call it a 'nicety' where for example, in vb.net you can just say task.run(sub() thissub()), and it creates a thread for you without specifying anything technical.

Edited by TouchOdeath

Share this post


Link to post
Share on other sites

I wasn't aware of that, thanks for clearing that up.  I guess since its not a feature then I will call it a 'nicety' where for example, in vb.net you can just say task.run(sub() thissub()), and it creates a thread for you without specifying anything technical.

VB.NET is managed code, meaning that it is assembled Just In Time. The JITter for .NET translates the Task.* wrapper to a simple call to CreateThread and slabs some error handling on there. There's not really a efficiency difference, the .NET framework just takes some time to initialize. Perseus is a barebones language, where you have to do any memory-management by yourself. This has the advantage that no additional code is injected into the binary (like runtime checks).

In VB.NET you have even more overhead, because it is (like AutoIt) able to use the thread API, but not designed to do so. VB6 and AutoIt crash or show undefined behavior when you try to create threads. The introduction of .NET thread-wrappers enables this in VB.NET.


I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

...
It took me about 6 hours straight, but I ported everything. And it does actually compile (the port that is). This is the minimal example we will use to iron out all remaining bugs:
...

Downloaded the current master. It did not compile most of it.
Q1: are you still working on it ?
Q2: how can I help?, I only know Autoit and some of Autoit's version of ScITE

Share this post


Link to post
Share on other sites

I'm still working on it, but I'm on tour the rest of the year for business, so no avail. A hint: Everything I post here (or posted since my last post here) is a part of my work on this compiler (OOPE for example). I'm building stable components to declutter the current port. Bear with me :D .


I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

I have the same habit, I post stuff which I use in my code :D

 

Looking forward for 2016, hopefully I can complete my project by that time :)


A cross-platform implementation of the AutoIt language

My contributions to the AutoIt Community ##AutoIt at freenode, real-time chat

3fHNZJ.gif

Spoiler

If I have hurt or offended you in anyway, Please accept my apologies, I never (regardless of the situation) intend to do that to anybody.

Share this post


Link to post
Share on other sites

Unfortunately, this means the death of my support of the Perseus project. I promise that the original VB source and the partly finished AutoIt port will remain public in my github account. I'm still convinced they provide a great learning resource. 

Edited by minxomat

I will answer every single PM, and you are free to ask anything anytime.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...