Cool. Didn't realise you managed to find some time.
-- On Sunday, 24 September 2017 16:11:25 UTC+9:30, jamesl wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
Not sure where I w find the time either but it's Sunday and I was up early Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by James Ladd
I'm certainly following along! Although I've begun work from a different angle, hacking the javac parser, I'm looking to contribute to this project too as my understanding of the models matures. Great work, James! Warmest regards, Alfonso Guerra Founder/CEO Apokalypse Software Corp. (626) 667-4285 On Sun, Sep 24, 2017 at 2:41 AM, James Ladd <[hidden email]> wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
Hey Alfonso, Glad to know you w follow along. What do you mean by a different angle and javac? Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Apokalypse Software Corp
I'll be using gitflow and label the branches with what I am trying to and what is completed - hopefully this w help those following along Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
Sounds good :-)
-- I just spent a while checking out what you were doing, wondering why it wasn't working, only to realise you're new ByteCodeEmitter is empty :-P @Alfonso I'm also curious as to what you mean by "hacking the javac parser" On Sunday, 24 September 2017 22:08:24 UTC+9:30, jamesl wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by James Ladd
Looked at the code. Are you reusing the old compiler or classloader? Or is everything new. The smalltalk system even calling just the Java class library would be beneficial. I would be most interested as well in writing Android apps in smalltalk which seems would largely need to call Java classes (potentially wrapping them nicely as a future endeavor) Kevin On Sun, Sep 24, 2017, 8:38 AM James Ladd <[hidden email]> wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
I see two problem with smalltalk running on JVM. a) JVM is a language graveyard b) You dont need to run a language on JVM to be able to use Java libraries About (a) , its easy to see why people would have very little interest about Smalltalk running on JVM , its afterall Smalltalk, we all know the community is too small. Python on the other hand is not small, its HUGE. Rumors estimate python coders to be over a million and the language is growing more popular by the second. There is a complete project to port Python to JVM , called "Jython". Its very mature, very stable and even has the rare luxury of supporting many pure python libraries and even C Python libraries (c libraries wrapped for python). Do you know how much interest Jython gathers ? For the popularity of Python is actually close to zero. Same story with .NET , we have there Ironpython, a bit less stable and less mature but still quite decent Python implementation, the interest there is not zero is actually minus. Of course its not just Python. Its Ruby, JS, Scala , Groovy, Clojure etc. I am willing to risk an assumption is that people code Python and Smalltalk because they want to and they code in Java because they have to. That createst a vast gap that makes it near impossible for users to cross. I toyed with Jython myself when I was learning Java, I even contacted the devs, very nice people and gave them a hand with the documentation and made music for their podcast. But in the end I find it extremely hard to justify Jython over CPython when it came down to ease of use and even power. I did want to deal with Java library or logic. Things also are made even worse with (b) option, which is basically IPC (Inter Process Communication) a weatlh of diffirent technicques to make languages talk to each other (as well as applications etc) which allows you to use the libraries of one language from inside another language. I made Atlas, a tiny library that uses sockets to allow the use of Cpython libraries from inside Pharo. Very limited, but if all you want is to call methods and functions , it does the job well. This effort provided inspiration for another project I called CPPBridge which allowed the use of C++ libraries from inside Pharo (Pharo FFI does not allow the use of C++ libraries because of name mangling that it does not support) . Both projects with full support for the usual live coding Smalltalk workflow. CPPBridge in particular extended the Pharo image to include live C++ objects through its use of shared memory mapped files which work very similar to smalltalk image of course minus the vm bytecode. In both cases those projects even though they may sound ambitious on paper they are jokes compared to what James has done. They never exceed a handful of hundrends lines of code and their design is super simple. In case of Java , Pharo has been lucky in the fact that already has such a tool, last time I checked some people used Java libraries through JNIPort library , a project started outside Pharo that offered support for both Squeak and Pharo. A language running on JVM obviously is more ideal than the quick IPC hacks , but because IPC can go much deeper than I did with it, I am pretty sure it can cover a huge array of scenarios that a JVM language would cover too, but with only a very smalltalk fraction of the effort needed for implementing a language on JVM. I have huge respect about James work, I would not dare to take such a giagantic project just by myself even with the promise of few other helping me out but that also may have to do with the fact that he is a much better coder than I am. I posted this here because my experience with my own IPC project taught me that most people , me included, are not aware how easy it to use libraries of another language through IPC. Generally small projects rarely use IPC unless their goal is IPC orientated but very large project utilisiing multiple of languages usually do and there are some sophisticated IPC libraries out there like RabbitMQ etc. On Sun, Sep 24, 2017 at 6:17 PM Kevin Driedger <[hidden email]> wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by James Ladd
I'm looking to use the Smalltalk language in the toolchains for the platforms I'm currently working with: desktops, mobile, web. That way I can use the same source files across the board. The Amber compiler generates Javascript from Smalltalk, and I have a Smalltalk-based language for the desktop which I'll need to revive, but I'm almost there. A compiler that will generate class files from Smalltalk that can call Swing, Hadoop or Android libraries would be very useful to me. So I'm changing some tokens and modifying the javac lexical analyzer and parser to accept the Smalltalk syntax instead of Java: lambdas, numbers, method calls, control flow statements, etc. The only thing done so far is I've replaced the "this" pseudovariable with "self". Commits will be coming soon. The repo for the project is at JHagah — Bitbucket, and I'm tracking progress with a trello board. Warmest regards, Alfonso Guerra Founder/CEO Apokalypse Software Corp. (626) 667-4285 On Sun, Sep 24, 2017 at 6:23 AM, James Ladd <[hidden email]> wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Kevin Driedger-4
Reusing what makes sense to reuse - by sense if there is a part that from experience needs a rewrite in rewriting it Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
Note: I have added an Issue to Github to describe the work I am doing next. I also describe the branch in the git repo that will contain the work. When complete this branch will be merged into the main line. On Mon, Sep 25, 2017 at 8:06 AM, James Ladd <[hidden email]> wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by kilon.alios
Hi Dimitris, >>I have huge respect about James work, I would not dare to take such a giagantic project just by myself even with the promise of few other helping me out but that also may have to do with the fact that he is a much better coder than I am. Thank you for the kind words. I'm not a better coder just a different one. The compliment isn't the only thing I took away from what you have said. I want to code in Smalltalk and I want to use the JVM so making Redline looks like my only path forward ;) I hope you continue to follow along and make comment. On Mon, Sep 25, 2017 at 1:48 AM, Dimitris Chloupis <[hidden email]> wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Matt Selway
I'll try and make a commit to a branch tomorrow and if all goes well I'll merge to master - stay tuned Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Apokalypse Software Corp
Have you heard of Bistro before? I only came across it recently, but it looks like it compiles a Smalltalk-based language (it has some extensions for Java features such public, private, protected, etc.) into Java. Sounds like that is the type of thing you want.
-- I am interested in how easy it is to just hack the java compiler though. How does it support Smalltalk features like block closures (since Java's lambdas are not full closures)? On Monday, 25 September 2017 03:11:24 UTC+9:30, Apokalypse Software Corp wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by James Ladd
I want to code in Smalltalk and I want to use the JVM so making Redline looks like my only path forward ;) That's the trick :-D I've used JNIPort in the past (still am actually), but a more integrated solution would be better I think: less configuration difficulties, hopefully slightly better performance. There are also some things lacking from Smalltalk implementations that you should be able to get 'for free' by having a JVM implementation. For example, native threads---not always a fan of doing multi-tasking by spinning up more instances of the image---and, hopefully, performance benefits from the JVM's runtime optimisation, among other things. On Monday, 25 September 2017 08:00:11 UTC+9:30, jamesl wrote:
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Matt Selway
Yes I have looked extensively at Bistro. Redline seeks to go straight to bytecode w full debug support. No mental manipulation between source and result. Blocks in Redline support the full semantics you expect - or rather they will- I didn't have this working in a previous version Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Matt Selway
Proper concurrency is available when using the Jvm and therefore Redline Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by James Ladd
Redline seeks to go straight to bytecode w full debug support. No mental manipulation between source and result. That's one of the things I liked about your approach. You get the Smalltalk code line, not the Java code line. Was hoping it would lead to the full interactive debugging that is normally associated with Smalltalk ;-)
Didn't realise you didn't have that working properly before :-O There's always rewrite 5 or 6, right? :-P So your ByteCodeEmitter creates a class that prints "sendMessages", that's a start :-)
You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
Direct to bytecode w proper line by line debugging - that's been there since day 1. Fully interactive debugging should work too - another reason for hooking into the classloader Blocks in Redline always did what Smalltalk blocks do. Yes - currently the generated class which is a valid Java class w simple output the message 'sendMessage' to the console. I'm pretty busy w work so I can only make small steps Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
In reply to this post by Matt Selway
Thanks for the code snippet - Redline has code to search class path and load the Smalltalk even if it is in a jar - I'm just not calling it yet Soon I will make the change to search the classpath then people can invoke the redline jar from the command line to exercise the compiler - stay tuned :) Sent from my Commodore 64 -- You received this message because you are subscribed to the Google Groups "Redline Smalltalk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email]. For more options, visit https://groups.google.com/d/optout. |
Free forum by Nabble | Edit this page |