REBOL

REBOL3 - #Topaz (The Topaz Language [web-public])

Return to Index Page
Most recent messages (300 max) are listed first.

#UserMessageDate
302GrahamCI need to check the Topaz G+ hangout :)Today 19:27
301GabrieleAdded a couple commits to make Graham happy. :PToday 16:25
300GabrieleI'm busy.Tue 9:09
299GrahamCLast comitt was 3 months ago?Mon 10:41
298PeterWoodI've updated the getting started wiki page at GitHub.

Please let me know if there are any errors in it.

12-Feb 11:26
297GrahamCNot implemented8-Feb 19:05
296GrahamC>> 37 * 11 *** Script error: Word has no value: * *** Stack: * 118-Feb 10:21
295GrahamCNo arithmetic operators in topaz yet?8-Feb 10:21
294Henrikthen it may be too much trouble. I was simply curious.8-Feb 9:51
293GabrieleTopaz runs in any JS interpreter; I use node.js because it's convenient. try-topaz.html uses the JS interpreter in your browser to run Topaz.8-Feb 9:38
292Maximok, I thought the discussion about using node.js was for this purpose... to have server and client side using the same language... sorry for the confusion.8-Feb 9:38
291GabrieleMaxim, certainly not, as there is no server side whatsoever to try-topaz.html8-Feb 9:37
290Maximhenrik, do you mean something like? :

topaz: func [ block ][ load read/custom http://server/try-topaz.html reduce ['POST mold block] ]

(where the post data above is replaced by whatever is required to properly fill in the form)

8-Feb 9:36
289Henrikok8-Feb 9:33
288HenrikI was only thinking about whether it could be used to test topaz vs. rebol via one piece of code.8-Feb 9:33
287Gabrielebut, i guess you can use CALL to run node.js, or you can get node.js to listen to a tcp port and connect to it from REBOL, etc.8-Feb 9:32
286Gabrieleonce I have the compiler, it would certainly be possible to target REBOL instead of JS. not sure if that is useful though. :-)8-Feb 9:32
285Henrikyes, something like that8-Feb 9:31
284Gabrielea topaz function for REBOL, you mean?8-Feb 9:31
283Henrikres: topaz [1 + 2]8-Feb 9:30
282HenrikI wonder if it makes sense to allow REBOL to call try-topaz.html, although it would be calling JS code? Then you could mix Topaz with REBOL for tests, etc.8-Feb 9:30
281GabrieleAlso, you only really need to install node etc. if you want to work *on* Topaz, otherwise you can use any web browser to just *use* Topaz, like in the try-topaz.html example.8-Feb 9:24
280GabrieleThanks, I don't really use Windows so it's hard for me to keep up to date on that front. Peter already said he's going to update the wiki; if anyone else wants to help, I believe github allows a fork approach to the wiki as well, otherwise I can add you to the main wiki to edit it directly.8-Feb 9:23
279AdrianSso you don't need to mess around with Cygwin anymore7-Feb 15:08
278AdrianSGabriele, you might want to update the Getting Started page on github in relation to using Topaz with Windows. The situation is much improved now that there is an official Node installer (also includes npm).7-Feb 15:08
277GabrieleNote, the Topaz specific wiki is on github: https://github.com/giesse/Project-SnowBall/wiki16-Dec 10:25
276GiuseppeCHi, I am interested into building an maintaining documentation for those programming languages based on REBOL. It would be nice to have a DOCBASE for them. What I search is: - Someone ABLE to SETUP the Linux and the Wiki Software - Someone which would share with me the cost of hosting. Do you like the idea ? Write me at giuseppe@chillemi.eu15-Dec 16:25
275BrianHSeems a bit like a cross between a destructuring matcher and regex. Useful.3-Dec 18:19
274GabrieleBrian, each "rule" has two effect: it advances the series, and returns a result. Most rules return the matched value, but not all. Examples:

>> parse [1] [number!] == 1 >> parse [1 2 3] [number! number! number!] == 3 >> parse [1 2 3] [some number!] == 3 >> parse [1 2 3] [object [a: number! b: number! c: number!]] == object none [ == a: 1 == b: 2 == c: 3 == ] >> parse [1 2 3] [object [a: number! b: object [c: number! d: number!]]] == object none [ == a: 1 == b: object none [ == c: 2 == d: 3 == ] == ]

3-Dec 10:46
273BrianHDoes it return the subject series at the position of the last result, or does it return the last recognized pattern as a value?2-Dec 16:38
272PeterWoodThanks, Gabriele2-Dec 10:44
271GabrielePARSE works in a similar way to DO, in that it returns the last "result". I will document this in detail before a 1.0 release. There is a slide in my september presentation about PARSE vs. INTERPRET which explains why I went this route.2-Dec 10:25
270GabrieleIf it fails, it returns none.2-Dec 10:24
269PeterWood>> parse b [collect any [keep number! | skip]] == [1 2]

Very interesting. What would be returned if the parse rule was more complicated and "failed" (ie would have returned false in REBOL).

2-Dec 9:38
268PekrCool, I want collect/keep in R3 too :-)2-Dec 9:27
267GeomolLooks simple. Cool!1-Dec 10:43
266GabrieleI don't have string parsing in Topaz yet, but I wanted to illustrate how what Endo is asking in the Parse group would be much easier:

Topaz Interpreter - (C) 2011 Gabriele Santilli - MIT License >> b: ["bla" 1 2 "bla"] == ["bla" 1 2 "bla"] >> parse b [collect any [keep number! | skip]] == [1 2]

1-Dec 10:31
265Gabrielemissing object: look at the source of try-topaz.html. what you need is probably there.29-Nov 10:07
264BrianHIt appears to be standard (it's the one in IE, so if you have IE9 it is as standard as V8). However, it doesn't seem to have one of the objects or functions that Topaz's bootstrap depends on. Some time I'll try to do a proper port. In the meanwhile, Node just requires installing a package on Windows (at least as of the last couple months), so any Cygwin-related criticism can be ignored now :)28-Nov 15:58
263GabrieleBrian... Windows is the odd one around, all the other operating systems just require installing a package. But, if windows has a built in JS interpreter, and if it is standard (and I don't mean the 1998 standard at that), then you can run Topaz on it.28-Nov 10:59
262KajMy guess would be that most Linux distros have about five JS interpreters preinstalled by now27-Nov 21:32
261BrianHA proper installer too, the latest version: http://nodejs.org/dist/v0.6.3/node-v0.6.3.msi27-Nov 19:33
260BrianHOK, good, there's a node.js for Windows now (Cygwin doesn't count): http://npmjs.org/doc/README.html#Installing-on-Windows-Experimental27-Nov 19:27
259BrianHOh, I see, you're installing a JS interpreter on Windows as well instead of using the built-in one, or even one that is made for Windows. Makes sense.27-Nov 19:18
258BrianHHe was asking about how to run Topaz outside of a browser. All of the suggestions I made above apply to Linux as well, except you have to install your own JS interpreter instead of using the one that comes preinstalled on Windows. So, it's a bit harder on your "real" operating system.27-Nov 19:13
257GabrielePeter's how to should work. Or, just use a real operating system. :P27-Nov 12:29
256PeterWoodI wrote some notes on how to get and install Topaz at https://github.com/giesse/Project-SnowBall/wiki/Topaz-:-Getting-Started

There a little old but should still work. If not please let me know.

27-Nov 4:39
255PekrCould I have the option, that editing html page, I would see the topaz (on client), and once run, it compiles at that time?26-Nov 19:05
254BrianHWell, Topaz compiles to or is interpreted in JavaScript at the moment. There are several ways to run JS on Windows outside of web browsers - it is one of the ActiveScripting languages, so you can use cscript, for instance - or you can load the Topaz environment in a web page, which can be a local html file with no web server needed. None of this is tested yet, of course, so be sure to tell us how well that works for you :)26-Nov 19:01
253MarcoHow can I try topaz in Windows? Is the try-topaz.html page the only method? Is there a way to write a topaz program with a text editor and then execute it in some way?26-Nov 18:54
252Gabrielenote that in practice, you'll have a dialect that specifies the whole web application, and when you deploy it to production, you get html, css, js etc. generated. but, nobody forces you to use the dialect.24-Nov 10:56
251GabrielePetr: actually, you have the choice to do whichever you want. For a production web site precompiling the performance-critical parts is probably the best way.24-Nov 10:55
250GabrieleBrian: I did that in JR in 2007.24-Nov 10:53
249BrianHCool. Nice capability to add to Topaz... :)23-Nov 20:30
248AndreasBrian: yes. See e.g. http://jashkenas.github.com/coffee-script/#scripts23-Nov 20:05
247BrianHCan you make a compiler/interpreter written in JS that can automatically handle script blocks that have the right language set?23-Nov 19:31
246PekrOr is that like this? : When user hits the website, Topaz "libraries" are being downloaded (language, compiler, actual app). When you inspect the source of the website, you can see real Topaz code, not a JS. This code is being compiled by JS engine for further usage, so the first run is kind of slower, but then it runs fast = compiled?23-Nov 17:09
245PekrWhat's going to be a usage scenario though? I will have to compile, in order to get reasonable performance? I mean - I develop in Topaz, but client gets clean JS?23-Nov 17:03
244GabrieleProgress: I added the action! datatype, and am preparing to write the "real" compiler. i was hoping to start that this week but it's starting to seem very unlikely. sleep is starting to seem unlikely this week. :)

Being usable: no. Speed: currently, you can use the "Fake Topaz" dialect and map 100% to JS; the interpreter is of course much slower. When 1.0 is ready: i don't think there will be reasons to worry about performance.

23-Nov 10:47
243PekrOldes in Other languages group - "Hm.. i gave it a try and must say that Topaz is much more interesting." So, I would like to ask - is there any progress lately? Is Topaz already usable for real-life code? An what is an speed overhead in doing some app in Topaz in comparison to direct JS execution?22-Nov 19:20
242GabrieleNot yet, there's no point at this time. But, there's no reason why it could not work. It should also be not that difficult to get it to work with Appcelerator Titanium.21-Nov 10:57
241BrianHGabriele, have you tried using Topaz with some kind of app packager like PhoneGap?19-Nov 18:43
240Gabriele(Currently, if you look at the JS source, you'll see that names are kept from Topaz, so it's easy to debug; I don't think i'll keep this in the end for various reasons, but at that point i'll probably write some tools for debugging the interpreter itself and any other compiled code)14-Nov 10:21
239GabrieleJanko, there are two cases here:

1) debugging the interpreter itself

2) debugging your own code (for eg. a web app written in Topaz)

I think that (2) is what interests you - in that case, you use the interpreter during development, so it's just the same as debugging in REBOL (well, I hope to provide a few more tools, but even without debugging REBOL code is not that difficult most of the time). Think of compilation as an optimization step, that you do only for production deployment etc. and only for some parts of your code (the parts where performance is important).

14-Nov 10:18
238RobertBut normal stuff... no debugger needed.12-Nov 21:35
237RobertOnly if you have real hard stuff, with multi threading, register stuff etc. the print statements are becoming to much work to do.12-Nov 21:35
236RobertGeomol, interesting. I do the same. I have used a debugger 15+ years ago.12-Nov 21:34
235Jankoor if functions/var names would have some resemblance of topaz ones where possible instead being some hashes or random (could be related_topa_name_random_stuff) it would also help12-Nov 18:14
234JankoHm.. i know now why I was looking at it this way. Because when I make a error in javascript now, browser shows me some line of code where it happened and I use that to know where to start fixing. Basically I usually can fix it imediatelly based on that info.

If source lang. would be giving me for example line comments with source topaz code (I know it's not 1to1 but still) so I could aprox locate the same code in topaz it would be helpfull in this case

12-Nov 18:12
233JankoYes I do some variant of that too. Hm.. maybe I just viewed all this wrong so far.. I imagined that when something will go wrong I will be looking and hacking on generated javascript (I use it and console sometimes), but yes I should view it that I will be changing the topaz with print statements for example and viewing the output.

In this case .. is it planned so that topaz could be automatically compiled on http request (in dev mode at least)? so that you can just edit and reload, like with javascript (without manually compiling)?

12-Nov 18:10
232GeomolUsing any language, I debug 99.9% of the times just putting in print statements at different points in the code. And then remove them again later, when things work. I like keeping code 'clean' and simple, so this approach works for me. And then there are debug tools in the language, that are used to produce the code, that translate code from one language to another.12-Nov 17:12
231JankoGabriele: one thing I don't know about langauges that compile to other languages (and there are many, I am not targeting this just to you), how do you debug then? Do you have any plans or thoughts about it? Maybe compile in "debug mode" where you somehow can discover what is going on?

I was just looking at ocaml 2 json yesterday and some other things and didn't see anything relating to this question.

12-Nov 15:51
230GabrielePeter, you may try to convince the others to show up earlier instead. ;)

Endo: it was very informal, so it's hard to write a written summary or anything like that... though, Hangouts with extra has a note thing, next time we can try to use that. In any case, if you have a preferred date / time for next month, we can try to be there.

4-Nov 6:59
229PeterWoodLooks like I'll have to stay up until 3:30 in the morning next time :-)4-Nov 5:14
228james_nakWell, the topics ranged from "how to solve the world's economic problems" to does Carl write good notes. Personally I appreciated the down-to-earth explanations of what Doc and Gabriele are trying to do and how their two projects are linked.3-Nov 23:15
227Endo* "a meeting note"3-Nov 22:23
226EndoI meeting note would be nice to read, just like old demoscene party reviews :)3-Nov 22:23
225james_nakAfter having this experience, I am really looking forward to what you and Gabriel create.3-Nov 22:14
224DockimbelYeah, was really cool to meet with Henrik and hear James.3-Nov 20:38
223james_nakYes, that was perfect.3-Nov 19:41
222Henrikyes, I think we should do this again.3-Nov 19:32
221Gabrielei'll check back in a bit in case someone else is around. in any case, it was a great talk. i guess we can repeat this next month or so - my afternoon seems to be the best time. too bad Peter didn't get to meet everyone else. :)3-Nov 19:25
220HenrikJames, it was great talking to you, but the connection was sometimes poor, which was a shame.3-Nov 19:15
219james_nakHenrik, it was nice to see you. That was a very cool meeting. OK, I'm going to get a camera.3-Nov 19:12
218HenrikMeeting has ended (for now?). It was great.3-Nov 19:04
217Henrikwe are having a great talk, if anyone is interested in joining. :-)3-Nov 18:07
216Gabrielehttps://plus.google.com/hangouts/extras/talk.google.com/topaz%2520and%2520red3-Nov 16:03
215GabrieleHenrik, the link above should be enough3-Nov 16:03
214Henrikforgot I had to click a link...3-Nov 15:59
213HenrikI'm not seeing the hangout in G+.3-Nov 15:58
212james_nakI'll keep working at it on my notebook. Stand by.3-Nov 15:54
211Gabriele:(3-Nov 15:54
210james_nakI keep getting knocked off. "Call initiation failed"3-Nov 15:53
209james_nakTrying again.3-Nov 15:52
208james_nakIt doesn't like me...3-Nov 15:52
207Gabrieleare you able to hear us at least?3-Nov 15:52
206james_nakOK, trying with my notebook...3-Nov 15:50
205GabrieleI've seen you for a second as well.3-Nov 15:49
204james_nakWorking on joining. I saw you two for a second.3-Nov 15:48
203GabrieleIt actually kicked me out earlier when I left it idle. But I was able to join back.3-Nov 15:40
202DockimbelWell, I could just join now and leave it open as you do...3-Nov 15:39
201GabrieleCool. Maybe I'll take a 1 hour break now then, I guess more people are going to show up once you're there as well.3-Nov 15:39
200DockimbelI will join in about an hour.3-Nov 15:37
199DockimbelHas he brought some beer? :)3-Nov 15:36
198GabrieleOnly Peter showed up so far... :-)3-Nov 15:35
197GabrieleI'm away for lunch. I'll keep the hangout on (not sure if it is possible to re-enter it after everyone's out).3-Nov 12:04
196Henrikok, I won't make a posting.3-Nov 10:19
195Gabriele(ie. what I want to avoid is someone from here not being able to get in because there are people coming even though they are not really interested etc.)3-Nov 10:18
194Gabrielenot sure, feel free to but i don't know how many people we can handle (ie. random people coming in from a public web page)3-Nov 10:17
193HenrikMaybe also make a quick post about it on rebolforum.com?3-Nov 10:16
192Gabrielehttps://plus.google.com/hangouts/extras/talk.google.com/topaz%2520and%2520red3-Nov 10:09
191DockimbelI will join the hangout later in the afternoon.3-Nov 9:58
190EndoGabriele: I would come but I'm at work and so busy :(3-Nov 8:57
189GabrieleReminder, i'll try to keep a G+ Hangout open all day tomorrow (Nov. 3rd).2-Nov 14:38
188KajVery cool. That looks very useful. I have often been unable to use parse because it is quite limited with nested blocks29-Oct 12:16
187HenrikJust parsin'... :-)29-Oct 7:41
186Gabriele>> a: [[1][2][3][[4]]] == [[1] [2] [3] [[4]]] >> b: parse a [collect any [keep *]] == [1 2 3 [4]] >> rule: [any [into rule | keep *]] b: parse a [collect rule] == [1 2 3 4]

Just sayin'...

29-Oct 7:37
185james_nakOK, thank you .21-Oct 15:32
184GabrieleI can try to keep the hangout open all day. James, I'd guess my late evening - your morning would be the best chance.21-Oct 9:45
183Endoif time is ok for me count me in.20-Oct 14:14
182james_nakWhat time?20-Oct 13:51
181GabrieleSo, how many people would be available if we tried to meet on November 3rd?20-Oct 9:38
180PeterWoodEast Asia, Australia and New Zealand16-Oct 22:24
179Endowhich part?16-Oct 20:51
178PeterWoodI suspect that there would only be a couple of people from this part of the world so it probably wouldn't be pretty lonely.16-Oct 12:32
177GabrielePeter: if there are enough of you interested, we could do a "full day". The reason I'm asking is that it would just be silly to be there on Hangout all day with noone showing up.16-Oct 8:37
176james_nakGabriele, as Henrik said, pick a date and let's go from there. What has happened in the past is that I find out too late that you have had your Red/Topaz meetings.15-Oct 21:26
175HenrikAs I usually say: "Stupid, round Earth"15-Oct 10:39
174PeterWoodAfter lunch in Paris and Rome!!15-Oct 10:36
173PeterWoodAnything after lunch is probably getting too late for people in East Asia, Australia and New Zealand.15-Oct 10:34
172PeterWoodI never knew you were a flat earther Henrik.15-Oct 10:30
171HenrikGabriele, yes, however my theory is that if you pick a time (one that is friendly to people on both sides of the planet), people will eventually start showing up, if you are consistently using that date.15-Oct 7:41
170GabrieleJames: I can schedule around almost any time as long as I know in advance.

Henrik: yes, however, knowing which times / days of week are best for most people would help. :)

15-Oct 7:36
169james_nakGabriele, what works for you? Weekends are usually good for most I imagine.14-Oct 14:50
168KajBas is intent on keeping up a half-yearly rhythm for the physical conferences. Denmark is not that far ;-)14-Oct 13:14
167HenrikPerhaps you can do this on a regular basis at fixed times? I know there was talk a couple of years back to do regular devcons, but there was only one.14-Oct 9:26
166GabrieleAgain, if people post here the dates/times they are available, we could do a virtual devcon or something like that.14-Oct 9:14
165DockimbelI was out of time to prepare some Red/System demos to show, maybe next time.12-Oct 18:12
164DockimbelIt was nice to see you too.12-Oct 18:11
163Jankonice to hear and see you :)12-Oct 18:10
162DockimbelChat closed now. We were four peoples online this time (even 5 during a minute with Reichart coming to say hello).12-Oct 18:09
161DockimbelChat is ongoing, feel free to join...12-Oct 17:27
160Gabrielehttps://plus.google.com/hangouts/c91d52d56861f8fbe94531e66eee7743b118e68512-Oct 16:56
159JankoI was there training some italian :) .. I will try to come by when you are around .. but I don't know if I have any smart questions. I am just working and working, not thinking about more abstract things at the moment12-Oct 10:19
158Dockimbelhttp://www.google.com/tools/dlpage/res/talkvideo/hangouts/12-Oct 10:15
157Jankoaha ..it was taken by the other window .. now I am in12-Oct 10:14
156DockimbelIIRC, there's a Google Hangout browser plugin to download to enable the webcam.12-Oct 10:14
155JankoMe to: I got a message in Italian saying that I can't join the chat without a video camera But I have webcam on .. I just logined to google + to see this thing ..12-Oct 10:13
154DockimbelAgreed.12-Oct 9:41
153GabrieleOf note, if there is interest, we could set up a day and be available the whole afternoon (for eg) so that more people can come (sort of a virtual devcon).12-Oct 9:36
152DockimbelGraham: you have 24h to find a webcam. :-)11-Oct 13:25
151DockimbelWe should make a new Google Hangout session tomorrow at 19:00 CEST. Guests are welcome to ask questions about Red & Topaz. I am waiting for Gabriele to confirm the meeting date/time.11-Oct 13:25
150GabrieleAFAIK you only need to download the google plugin. it should be possible to connect with other clients as well, but i haven't tried that with hangout.27-Sep 7:56
149GreggI'm out Oct 6-10.25-Sep 18:03
148GreggI clicked, but have no webcam and don't have Google voice set up. I will try to prepare for the next one.25-Sep 18:02
147GabrieleLet's try to pick a good day in October... suggestions welcome.25-Sep 13:31
146GabrieleGraham, I've been on Hangouts with Maarten and he was audio only. So my guess is you can ignore the message. It might work without a mic as well as they do have a text chat, though we also have altme for text.

No idea why Google would use *my* language when other people join... I guess they're just silly. :)

25-Sep 13:29
145DockimbelIt seems so. I was also a bit surprize when I connected. :)24-Sep 20:17
144GrahamCSo, system messages appear in the language of the person organizing the meeting?24-Sep 20:07
143DockimbelRight, you need a webcam. We'll organize another short online meeting in October, if you have some questions for Red/Topaz, we'll be glad to answer them.24-Sep 19:53
142GrahamC( my best guess )24-Sep 19:47
141GrahamCI got a message in Italian saying that I can't join the chat without a video camera24-Sep 19:46
140Henrikbad timing for me. I would have liked to see it.24-Sep 19:06
139GabrieleOk, we're out. You missed a good chance. :P24-Sep 18:16
138GabrieleMe and Nenad there at the moment.24-Sep 17:02
137GabrieleIf anybody's willing to try: https://plus.google.com/hangouts/bbd615d3a9d2db678fba2997f6775604ee6ddfb9?hl=it&authuser=0#24-Sep 17:02
136Henrikyes17-Sep 21:02
135GrahamCGoogle hangout is sort of video conferencing?17-Sep 20:56
134Gabrieleonetom: I used Keynote, it can export to a few formats, including HTML (by just making PNGs, so it gets pretty big). I can also provide the keynote file if useful. (Unfortunately, I was very tight on time and was unable to do this in Topaz itself.)17-Sep 10:50
133GabrieleI'm planning to do something like a Hangout on Google for a Q&A for people here that were unable to come to the conference. When would it be a good time? Any other suggestion other than Hangout?17-Sep 10:48
132GabrielePetr: yes on all, of course; the question is only "when". I hope soon. (You can already wrap jQuery quite easily)17-Sep 10:47
131GabrieleGraham, the windows pc that was there did not have a second screen. My laptop has DVI, not HDMI, but only digital DVI, and the projector (or, at least tha adaptor that was there) seemed to want analog. So I'm sorry if you're looking at my back most of the time, but it was hard to do anything without looking at the projector screen :)17-Sep 10:47
130GrahamCHeh .. finally a case for power point!17-Sep 2:04
129KajGabriele couldn't connect his laptop, because the available HDMI adaptor was incompatible17-Sep 1:31
128GrahamCIt would be nice for future talks to have a PC screen infront of the presenter so that they don't talk to the screen.17-Sep 0:07
127BasGabriele´s presentation about Topaz during Software Freedom Day 2011 at the Centrum Wiskunde & Informatica (CWI), Science Park Amsterdam, last wednesday: http://www.youtube.com/watch?v=xBJHMkN9qJ416-Sep 21:25
126GrahamCThink JavaScript16-Sep 8:47
125PekrGabriele - will Topaz utilise things like encryption? That would be handy to have some hashing etc. Other question is - will Topaz be able to "wrap" things like jQuery, so that you could write your "app" in Topaz, utilising jQuery widgets? Sorry if answers are obvious .....16-Sep 7:12
124PeterWoodRight-click and then select rewind takes you back to the beginning.16-Sep 7:04
123GrahamCI didn't realize you had to click on the page to make it advance. How to unclick to make it step backwards?16-Sep 2:03
122onetomah, ok, i see it now... damn small altme fonts on the mac... any other format than flash? i dont know how to step backwards15-Sep 15:32
121onetomwe also have SFD in the Singapore National Library. If u could share the slides by tomorrow, I would try to prepare myself for a talk also.15-Sep 15:28
120KajThe presentations of Gabriele and Nenad were great, and we also had a good time afterwards. We thank them both15-Sep 12:35
119GeomolLooks like something to follow, if making web applications. Good job, Gabriele!15-Sep 9:27
118EndoNice slides Gabriele.15-Sep 7:55
117KajI'm sorry, it turned out that the venue has a firewall that blocks almost everything except HTTP, even outgoing connections on the wired network, so we couldn't get through with AltME15-Sep 1:20
116GrahamCSelf referencing slides?14-Sep 18:40
115Henrikhttp://www.colellachiara.com/soft/topaz/SFD2011.html14-Sep 15:16
114BasLess than twelve hours to go :)14-Sep 4:23
113BasYes.14-Sep 4:22
112GrahamCThe talk is 2day?14-Sep 2:43
111KajI'll try to report the Topaz and Red talks here tomorrow13-Sep 20:44
110GabrieleThe slides will be on the web, hopefully even before my presentation, but in the worst case as soon as i'm back.12-Sep 20:18
109GrahamCAnd the slides are going up on github too ?12-Sep 19:47
108BasGreat!12-Sep 11:23
107GabrieleIt was a race against time... but Topaz is now ready for the SFD. :-) See Github for all the changes.

Now... i need to put together a couple slides... :-)

12-Sep 9:21
106GabrieleYou can play with it at http://www.colellachiara.com/soft/topaz/try-topaz.html27-Aug 12:51
105GabrieleFor a sneak peak of how it works, see the comments in: https://github.com/giesse/Project-SnowBall/blob/master/topaz/types/function.topaz27-Aug 12:51
104GabrielePushed optional function arguments (interpreter only right now).27-Aug 12:50
103KajWe're looking forward to it25-Aug 18:48
102Gabrielejust added ERROR!... next: optional function arguments etc. I think i'll have enough to show at the SFD :-)25-Aug 17:36
101Gabrielehttps://github.com/giesse/Project-SnowBall21-Aug 14:24
100GabrieleI've significantly reorganized the Topaz source code. A bit more manageable this way.21-Aug 14:24
99shadwolftake them as overall general comments and particular taste of someone used to program in around 20 languages ...16-Aug 5:38
98shadwolfgabriele I think the perl/php apraoch print "myvqr bla blah myothervar" is not in your plans neither ... Well I gived you just a list of the kind of things I think rebol could do better no offense ...16-Aug 5:37
97GabrieleRe: SFD: I hope to have something to demo as well, but i can't guarantee that as Topaz still has a long way to go before 1.0. Worst case, i'll just talk about it in general and accept questions.13-Aug 10:22
96GabrieleShadwolf, something like "bla" . "bla" . "bla" cannot be optimized in an interpreter like Topaz, moreover, why the hell should i have to write . a hundred times and have an error when i forget it? So, no, you won't get this in Topaz.13-Aug 10:21
95shadwolfI fear that being 3 totally seperated projects on their own they won't liveon ... and somehow collide ... Ok I'm not clear on this ...13-Aug 0:19
94shadwolfok one last remark with red, borron, and red isn't that too much spin off language to handle for this community ? I understand there is a lot to research on this very interesting field ... but don't you fear that those project will in a short term stop growing cause complexity level reach and there is noone to keep them on the progressing curve. Can eventually those project be merged into one single project keeping the other two less advanced as research ground and the BIG thing being granted with the best ideas proven in the "research" project ?13-Aug 0:19
93shadwolfoh last remark ... I noticed most of the time scripting language tends to be differenciated by their affectation symbol example lua use var ::= 1 rebol var: 1 perl var= 1, PL/SQL var:=1; etc ... I like the rebol way of affectation and since that one of the sign of a rebol script I think it's important to keep in in spin off languages ...13-Aug 0:13
92shadwolfarriving to do something like that in a rebol inspired script language would be terrific ... I know I'm just giving some thought and no code ... well ... I have not your talent for those thing :)13-Aug 0:11
91shadwolfmyvar=`ls /home/myname/mydir` foreach file myvar [ print "file name: " + file ]13-Aug 0:09
90shadwolfI like the perl way to deal with bash expression on linux ...13-Aug 0:08
89shadwolfI like this idea print "hello " . myvar . " !" or print "hello " + myvar + " !" over the print rejoin ["hello " myvar " !" ] ... In web area a rebol inspired language using more "advanced" less pompous string concatenating method will be noticed I think...13-Aug 0:08
88DockimbelThat is a very good news!12-Aug 18:09
87BasGabriele will give a presentation about Topaz during Software Freedom Day 2011, wednesday 14th september, at the Centrum Wiskunde & Informatica (CWI), Science Park Amsterdam: http://www.softwarefreedomday.eu/12-Aug 18:07
86KajI like TO better than a symbol, which would also be non-standard, but maybe we can have both22-Jul 13:33
85EndoNormally all op!s are somehow related with math, as we can consider equality tests (=, !=, > etc) and logical operations (xor, and etc.) as math operations. TO and IN are different by this way, they are not related any math operation, they don't test, they don't calculate anything. And one of them should have a precedence the other, or we should use parens, or can we say always left-to-right:

>> o: context [a: "3"] >> 'a in o to integer!

22-Jul 12:05
84GabrieleEndo: think about the fact that the (...) is usually a long expression, but more importantly, there is no clue that TO is an op rather than a function, other than it not being a verb (which is not obvious).

The IN case is much easier to read, and IN is used in a similar way in other languages. TO might confuse both rebolers and non-rebolers... :)

I still like the idea of them being ops, i'm just worried about it being too unreadable and forcing parens most of the time. would anyone prefer using some kind of symbol? eg. similar to the <- suggested above.

22-Jul 8:29
83EndoBut if TO is an OP then var: (...) to string! looks ok. Just like var: 3 + 5 does not lead var is 3. variable assigment has lower precedence than any other.21-Jul 13:07
82GabrieleI guess the common use:

if 'word in context [...]

makes sense, while the common use:

var: (...) to string!

is a bit unpleasant. OTOH, maybe this'd give a reason to the various to-* functions, so you'd use

var: to-string ...

still, "to-string" is not a verb... so, i'm not convinced yet. :/

21-Jul 8:46
81Gabrieleoperator precedence makes sense... but it is not worth the trouble.21-Jul 8:44
80KajNice find20-Jul 12:25
79Geomolhttp://mathforum.org/library/drmath/view/52582.html

Mathematicians needed to write ax^2 + bx + c as easily as possible.

20-Jul 12:14
78GeomolI wonder, who first introduced operator precedence in math?20-Jul 12:08
77KajThe thing that mesmerised me most in the Dragon Book was the implementation of expression evaluation with precedence rules. I think since then, everyone was hypnotised to think that it needs to be implemented in every language. Maybe Carl never read the book :-)20-Jul 12:02
76KajHaving no precedence is the most brilliant way to solve all precedence disputes :-)20-Jul 12:00
75GeomolAh, sure. :)20-Jul 11:59
74KajI think Max wants it to have lower precedence :-)20-Jul 11:58
73GeomolThat might be a drastic announcement. Letting = have higher precedence than the rest could be a good idea, but might be hard to implement and/or have performance hit.20-Jul 11:51
72GeomolMy C book is open at page 53 too most of the time. Operator precedence is crap!20-Jul 10:59
71GabrieleNote, it would be possible to use any unicode character for the IN etc. ops to make them stand out visually... but then they would not be easy to type.20-Jul 9:24
70Gabriele*tail20-Jul 9:23
69Gabriele(TCO = taill call optimization)20-Jul 9:23
68GabrieleMax: if append a "ouch" = append b "ouch"

I wonder how would you ever find that readable.

20-Jul 9:22
67GabrieleThe issue of parens: i think that no matter what the precedence rules are, you'll find cases where you need parens.

Now, one of the things I want to try doing in Topaz is TCO, so maybe parens will have less overhead in the future than in REBOL, but it's hard to predict whether this is possible at all in the interpreter. They will probably not have significant overhead if you compile.

I vote we worry about readability first though, there's always going to be alternatives when performance is required. (Eg. the fact that something is available as an op! does not mean that it is not also available as a regular function; like in REBOL you have both AND and AND~. In fact, Topaz requires that you pass a function! or native! to make op! - so such function version has to exists anyway.)

20-Jul 9:21
66GabrieleBrian: a clarification, Topaz is both an interpreter and a compiler, and although you can compile whenever you need speed (so in principle there won't be much need to manually optimize functions for the interpreter), in most cases you're running in an interpreter very like REBOL.20-Jul 9:15
65GabrieleSee, all this is the reason, I think, why Carl never allowed creating new operators. :) (Aside from what looks like an optimization in R2, I think R3 works like Topaz in this regard and could easily allow custom ones.)20-Jul 9:10
64Maximyep. its another battle of consistency (objective) vs practicality(subjective). this is probably the biggest challenge in any design decision IMHO.20-Jul 2:33
63KajAh, but we were discussing implementing more operators - in fact, making their number unlimited20-Jul 2:28
62MaximI see it more like... when in doubt... just add parens (in both languages). ;-)20-Jul 2:28
61Maximthere is also an issue in that there are sooo many ops in C. This is one thing that makes REBOL simpler.20-Jul 2:27
60KajWhen in doubt in C, you need the book. When in doubt in REBOL, you only have to think logically20-Jul 2:27
59Maximhehehe... don't get me wrong, I'm not saying its perfect.20-Jul 2:26
58KajMy C book falls open at page 53, as all of them do. It's just to hard to remember, lots of programs have superfluous parens "to be sure", and it's accepted that some of C's precedence should have been designed differently20-Jul 2:24
57MaximI don't find C's precedences to be that far off the mark of the most-commonly usefull pattern. I don't have to write parens nearly as much in C than I have to in REBOL, its like a 10 to 1 ratio. Do I feel like precedence is actually helping me.

its also a problem to me that rebol's clean syntax gets bloated by all those (relatively) useless parens.

Add the fact that Compose will often bite you in the arse because of these (I do a lot of run-time code building and compiling in many of my apps) and its just gets really complex for nothing.

20-Jul 2:20
56KajIt's an inconvenience, but remember a whole stack of rules, which never succeeds, is a big inconvenience20-Jul 2:15
55Maximbut it would also make it pretty slow, so I have to live with it. :-/20-Jul 2:11
54Maximeven when = has higher precedence than executing a function? come on, a little bit of precedence would make a lot of REBOL code simpler to write.

a: "eek" b: "wtf" if append a "ouch" = append b "ouch" [ a ] ; ERROR appends boolean to a string, so is always "truthy" == "eekfalse"

this kind of thing makes me go mad ! (there are sooo many other examples ;-)

20-Jul 2:10
53KajI'm very pleased with not having to remember precedence rules in REBOL, so I think of it as a brain optimisation instead of an interpreter optimisation20-Jul 2:01
52Maximhonestly, I'd prefer if operators did have precedence, but this might be awkward if you can define your own! you'd need to instruct the compiler what precedence your op has! but how?20-Jul 0:45
51BrianHThe big problem isn't an interpreter or copying thing, it's a syntax thing. If Topaz keeps the same evaluation precedence as REBOL, operators are going to continue to be awkward. The reasons behind the REBOL precedence rules are sound, and derived from the interpretation method, but if they are emulated in Topaz we'll still have asymmetry between the left hand side and the right hand side of an operator, requiring parens to resolve. Even if they don't have runtime overhead, we still have to type them. Not necessarily a problem, unless Gabriele thinks so :)20-Jul 0:42
50BrianHBut the copying thing is a good reason to have AS be different than TO.20-Jul 0:37
49BrianHNope, not as long as parens don't have overhead in JS. JS, Lua, Python, Ruby, they're all compiled, even if the compilation result runs on a VM.20-Jul 0:36
48KajAlso, Topaz' main current purpose is to compile to a (semi-)interpreted language, so you may still want to take interpreter patterns into account19-Jul 23:11
47KajI agree about the differences, but I don't see how they're relevant to AS. To copy or not to copy is still very relevant in compiled languages19-Jul 23:07
46BrianHRed is Gabriele's experiment -> Topaz is Gabriele's experiment Bad typing day.19-Jul 22:16
45BrianHAs for Topaz, it's the experimental one. Red is supposed to be more REBOL-like, to facilitate easier conversion of REBOL code, but Red is Gabriele's experiment with language design. He's already proposing to do things differently - i.e. function optional arguments - so it will likely end up quite different :)19-Jul 22:15
44BrianHFor IN though, it makes much more sense to have it be an op, with that word order. Too bad we can't do that in REBOL as well.19-Jul 22:12
43BrianHWell, a lot of the language patterns used in REBOL come from its interpreted implementation. We don't use ops much in complex code because of paren overhead, but we use ops in simple code in R2 because the lookup is more efficient because it's special-cased. Compiled languages may end up being shaped differently, especially for optimized code. Still, AS for possibly-non-copying conversions is still more of a proposal in REBOL rather than an actual. AS as an operator version of TO would work there too. You could even do it directly in R3 if it weren't for the reversed arguments.19-Jul 22:08
42KajTopaz is not the Anti-REBOL, is it?19-Jul 21:54
41BrianHThat would be nice, but this is also a Topaz group, and that's a REBOL convention :)19-Jul 21:53
40KajI thought we have something of a convention to use AS for possibly-non-copying conversions?19-Jul 21:50
39BrianHIn REBOL I often avoid using operators when they would require parens to manage precedence, because parens have overhead there. This wouldn't be the case in a compiled language like Topaz.19-Jul 21:23
38BrianHAS might be a better name for the operator instead of TO. IN as an operator with that argument order makes sense.19-Jul 21:22
37Mcheanvery nice!19-Jul 20:18
36KajAn experiment with TO wouldn't even harm REBOL compatibility much, because there are still the TO-* functions19-Jul 19:49
35KajI like the experiment. I was always a bit thrown off by the order of IN19-Jul 19:48
34GeomolHaving the ability to create operators would be a good first step to deside, which operators makes sense, and who don't.19-Jul 19:23
33Gregg"To op or not to op" ...is suddenly very confusing.

For general use I would keep them as regular funcs, but perhaps add special sigilized op! versions. I like the regularity of funcs when generating code. I use the op approach in my dialected CAST func. e.g.

cast [a to tag! b to block!]

19-Jul 18:41
32Maximthe Other alternative I see is using <- , as in:

>> x <- string!

but with endo's comment, its very misleading to read. >> x <- t

it looks like an assignment. (put value of t within x)

so maybe standardizing on a first character which means, this operator is an in-place modifier, might be a good idea... it might also allow a new class of series operators. ----------------------------- with: := to :< append ------------------------------ label: "prefix-" :< "text" :< "-suffix" x: 1 y: 3 x := string! x :< "test" x: label :< 1 :< y: "2" :< (y := string! ) ----------------------------- x == "prefix-text-suffix123" y == "23"

19-Jul 16:32
31EndoOops, small typo, it should be: >> t: string! == string! >> to t 5 == "5"19-Jul 16:25
30EndoMaking IN and TO as OP! looks ok. => looks better than -> but it a bit similar >= and <= I'm not sure if it reduces readability. Especially if we put string! value in a word (I'm not sure either if anyone uses this)

;rebol >> to t 5 == "5"

;topaz t: string! x => t

19-Jul 15:27
29MaximI find this better:

x => string!

-> looks more like a "move to here" (which is why they used it for C pointer struct dereferencing IMHO) => having an = symbol, looks more like a "make into" (for which "to" is a synonym).

19-Jul 15:19
28Geomolx -> string!

hmm

19-Jul 15:12
27MaximI prefer this syntax by far, but are you using the same operator precedence rules than REBOL? ... it might complicate other areas of expression handling...19-Jul 14:44
26PekrThat would be quite a change for a reboller, in how we perceive rebol code, no?19-Jul 13:23
25GabrieleI was thinking about this:

In Topaz, you can make an op! out of any two-arguments function! (or native!). So, would it make sense to define IN as an op! rather than a function? Ie:

'word in context

rather than

in context 'word

The problem with it is that, contrary to +, * etc., there is no visual clue that IN is an op! rather than a function. However, the same can be said for AND, OR etc. in REBOL.

Which lead me to think: maybe the fact that the name is not a verb, but a preposition? In that case, should TO also be an op!?

x to string!

rather than

to string! x

19-Jul 13:11
24GabrieleWhat is next is completing Topaz. The current version exists only so that I don't have to write any JS code in order to write the "real" Topaz. If you look inside next/ on the repository, i need to add all the datatypes and the natives, then write a translator that turns all that into something the current compiler can digest.2-Jul 7:48
23nveYour right Endo...!1-Jul 18:49
22Endoeven you don't work on it 100% time, it would be nice to know what is next, you can write what is in your mind for next step, like a to-do list, without given exact dates.1-Jul 15:36
21Gabriele"But what about concentrate all the effort on one product ?"

We all have different goals. My main goal is to be able to try out experiments (like, what would it be like to add feature X to the language?); there's no way I can do this with R3. Also, I don't want to program in C (so, again, R3 and Boron are out).

My secondary goal is to simplify creation of web and mobile applications. R3, RED and Boron do not run inside the browser; RED may be able to target mobile platforms eventually, so we may be able to collaborate here.

30-Jun 10:02
20GabrieleI don't have a timeline because I can't work on it 100% of the time.

I have many goals. One is to make creating web applications easy. I'll repost a message I posted earlier on a different group:

30-Jun 10:01
19nveDo you have a timeline for your project ? A goal to reach ? People are asking lots of questions about Topaz (because it is related to Javascript ;)). Thanks for your lightening.29-Jun 20:36
18Gabrielenve: i don't have a home page yet, except for the try-topaz.html thing. so github is the place for now.27-Jun 7:43
17nve@TomBon Great ! I like this picture !26-Jun 22:09
16nve@Gabriele Do you have a home page or is it Github project hosting as a home page ? Thx26-Jun 22:08
15DockimbelI am pretty sure that we will find some ways to combine Topaz and Red at some point, once both get more mature.26-Jun 13:32
14Dockimbel:-)26-Jun 13:29
13KajSilence is topaz26-Jun 13:28
12TomBonwe could use dnanexus for this as posted from doc.26-Jun 9:28
11TomBonLOL, yes, but only if mutation appears also within a accelerate year.26-Jun 9:27
10GrahamCOr, all that sparkles is not ruby?26-Jun 9:26
9GrahamCSo, the topaz lines the cloud of the missing R3 author?26-Jun 9:26
8TomBonthis was a truly accelerated year...26-Jun 9:24
7TomBongraham, topaz is a silicate based gemstone, with the correct impurities it could morphe to topaz_red. as you can see here: http://en.wikipedia.org/wiki/File:Topaz_red.jpg :-)))26-Jun 9:22
6GrahamCI guess it'll be a year or more ... before the answer arrives26-Jun 9:18
5GabrieleGraham, you'll probably have to wait for a good answer to that question. :)26-Jun 9:02
4GrahamCWhat's topaz?26-Jun 8:52
3onetomawesome! :)26-Jun 8:18

Return to Index Page