Re: [Unicon-group] Svn Update

2017-06-20 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Steve,


I renamed a class named Event in uni/lib awhile back. Its new name is 
Notification. Although it was in a package, people had complained that it was a 
conflict with a built-in function Event, and someone doing an import of the 
package could be surprised when their program no longer ran.


The event.u reference probably comes from an old uni/lib/deps.out or some such. 
 See commit r5068 or feel free to ask questions.


Clint


From: Steve Wampler 
Sent: Tuesday, June 20, 2017 12:22:52 PM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Svn Update

On 06/15/2017 11:38 PM, Jafar Al-Gharaibeh wrote:
 > Status Update:
 >
 >While not done yet but the progress that has been made so far is enough 
 > to allow people to give the new changes a
 > try. Basically, what we are trying to do is move a way from any "manual" 
 > configuration where end users don't have to
 > edit files to define this or enable that to control whether a particular 
 > feature is enabled or not.  We are also leaving
 > no chance of guessing on the end user part to get the correct configuration 
 > for an underlying platform. The
 > configuration script should be able to figure it out on its own in the vast 
 > majority of cases. We will update the
 > documentation on the website in the next few days on how to build or 
 > configure Unicon moving forward. The instructions
 > are easy, checkout the sources and just do:
 >
 > ./configure && make
 >
 > And  that is all you need (crossing fingers).

On my Linux/CentOS 7 system, I had a few problems:

'make Pure' - no issues.

svn update - kept failing because it would find unversioned Makefiles
and an occassional unversioned directory.  Kept removing those and
rerunning the update until no more failures.

./configure && make - failed the first time on the make.  It
printed out the old help message:
---
UNIX: Run "make Configure name=system" or "make X-Configure name=system" or 
"make build name=system"
   where system is one of those in config/unix.
Windows (MSVC): Run "nmake NT-Configure" or "nmake W-Configure".
Windows (GCC): Run "make NT-Configure-GCC" or "make W-Configure-GCC".
Windows (both): Then add the Unicon bin directory to your path.
All: after configuration, run "make (or nmake) Unicon".
---
A quick showed that the main Makefile hadn't been updated.
Removed it, did an svn update on it and reran command.

./configure && make - (#2) no problems building icont, iconc, and unicon,
and most of the *.icn code through compiling webup.icn.  Then:
---
make[3]: *** No rule to make target `event.u', needed by `all'.  Stop.
make[3]: Leaving directory `/disk/opt/svn/unicon/unicon/uni/lib'
make[2]: *** [lib] Error 2
make[2]: Leaving directory `/disk/opt/svn/unicon/unicon/uni'
make[1]: *** [Unicon] Error 2
make[1]: Leaving directory `/disk/opt/svn/unicon/unicon'
make: *** [default] Error 2
-
There is a file 'event.u' in ipl/lib, but I can't figure out
why Makefile in uni/lib thinks event.u needs to be built as
it's not listed in UFILES!

help?

Thanks!
Steve

--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] unicon -C ==> -fs tweak

2017-06-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Sergey

Your \ and / issue points out rather simply that unicon -C hasn't fully been 
ported to Windows yet, and even if we fix this little issue and get it to run, 
you will need a C compiler for the generated code, and someone will have to 
build the runtime system rt.a and rt.db on Windows. Maybe most of the port has 
been done awhile back by Shea, but it is not in the public Unicon binaries yet. 
I'll check on all this and report back.

Clint

Sent from my LG G6, an AT&T 4G LTE smartphone

-- Original message--
From: Sergey Logichev
Date: Tue, Jun 13, 2017 12:55 AM
To: Contact - clint.jeff...@gmail.com;
Cc: Unicon group;
Subject:Re: [Unicon-group] unicon -C ==> -fs tweak

Clint,

Now I understand. I suppose that mix of "\" and "/" is produced by "../" 
somewhere internally in unicon. To avoid same problem (as I use my code on 
Windows and Unix transparently) I define path-separator character. "\" for 
Windows and "/" for Unix and all is fine!
Thank you for reference to utr11, it's quite informative and no more questions.
Thanks!
Sergey

13.06.2017, 07:43, "Clinton Jeffery" :
Dear Sergey,

I agree that "ca-add-link" ... "not ready" is not a very good message. It is 
easy to see the spot in the code (uni/unicon/ca.icn) where the error message is 
emitted. It is less transparent what is the cause, and what is the fix.  One 
possibility is the mixture of \ and / as path separators seen in the message.

The error message occurs when a "table of all the ucode files", uftbl, does not 
have a table entry for the requested file, in this case 
c:\\work\\unicon\\bin\\../ipl/gprocs\\graphics.icn

I can imagine the table having that path to graphics.icn inserted, but all with 
\\  or all with /. Unlike a C open() command, a table lookup will not accept 
either character as equivalent. I will need to experiment on a Windows machine 
to try and reproduce your bug and find out if it has to do with \\ vs. / or 
something else, unless you or someone else beats me to it. If it is \ and / 
mixing that is the problem, it should be pretty easy to fix.

In answer to your other question, I agree that unicon -help is swell. The man 
page for unicon is http://unicon.org/utr/utr11.html and if the -help output or 
the utr11.html are unclear, we want to know about it so we can make additions 
and corrections to them.

Cheers,
Clint

On Tue, Jun 13, 2017 at 12:24 AM, Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Hello Clint,

Unfortunately, I didn't managed to build my lovely program with -C option. I 
got the following (that's the end of long output):
Parsing xm.icn: 
..
Parsing sort.icn: .
Parsing process.icn: ..
Parsing options.icn: .
Parsing regexp.icn: 
Parsing futils.icn: .
Parsing escape.icn: ...
Parsing asort.icn: 
Parsing xmprocs.icn: ...
Parsing unicodes.icn: 
Parsing htmlutils.icn: ...
Parsing graphprocs.icn: 
Parsing c:\work\unicon\bin\../ipl/gprocs\graphics.icn: .ca-add-link: 
"c:\\work\\unicon\\bin\\../ipl/gprocs\\graphics.icn" not ready.

I don't understand what does it mean - "not ready". Could you please dechipher 
this message. I have "link graphics" in my code and I sure that it is already 
compiled. Without option -C all is built fine.
As for option -fs, in my humble opinion it should be always. As I understand if 
I have some procedures in code which are not called they will be removed during 
compilation as redundant. But it's not my case, I need such procedures 
definitly, as my program interprets and runs "on-the-fly" scripts written in 
simplified Icon/Unicon and these scripts can include any available procedural 
calls. It's slightly extended version of an approach firstly implemented by 
Stephen Wampler in IPL's icalc.icn.
Maybe you can advice some more advanced approach to me? I will be very 
appreciated to you.
Sincerely,
Sergey Logichev

PS. I was very happy to see option -help for uncion! That's really great! Does 
it exist more complete description of each option in docs?

12.06.2017, 20:47, "Clinton Jeffery" 
mailto:clint.jeff...@gmail.com>>:
Dear Uniconers,

Lots of exciting work is getting done by the Unicon community right now.  I 
hope you are having a blast.

Just to let you know: after several of you reported programs that would run 
under unicon -C but only if the -fs option was used, I went ahead and asked Ken 
Walker if there was any reason not to turn -fs on all the time, other than the 
slightly larger code size it would entail. He indicated that actually using 
string invocation (the feature -fs was written to support) reduces the 
effectiveness of type inferencing, but that leaving -fs on was fine if we don't 
mind the code size.

So, I turned on -fs automatically if -C is used in unicon, in our svn 
repository. It allows a numb

Re: [Unicon-group] unicon -C ==> -fs tweak

2017-06-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Steve,


I (just now in response to your request) added a -nofs option to disable the 
default -fs if -C is used, as in


unicon -C -nofs hello


to allow you to observe just how big the code blow-up  of -fs is.  Perhaps I 
need a better name than -nofs.

What do you think, -FS  ?   --fs  ?


From: Steve Wampler 
Sent: Monday, June 12, 2017 10:49:46 AM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] unicon -C ==> -fs tweak

Hi Clint,

On 06/12/2017 10:46 AM, Clinton Jeffery wrote:
> Just to let you know: after several of you reported programs that would run 
> under unicon -C but only if the -fs option
> was used, I went ahead and asked Ken Walker if there was any reason not to 
> turn -fs on all the time, other than the
> slightly larger code size it would entail. He indicated that actually using 
> string invocation (the feature -fs was
> written to support) reduces the effectiveness of type inferencing, but that 
> leaving -fs on was fine if we don't mind the
> code size.
>
> So, I turned on -fs automatically if -C is used in unicon, in our svn 
> repository. It allows a number of Unicon programs
> to compile or run correctly that otherwise do not. But, if you encounter any 
> problems due to it, I want to hear about
> them and could change the default back if it has any really bad side effects. 
>  If you are using a binary distribution or
> building from a .zip this change won't affect you for now.

Is there a command line option to turn it off if we want to experiment?

Thanks,
Steve


--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unidoc info

2017-06-08 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Thanks for pointing at the README Jay.

We are currently in the midst of integrating Steve and Kevin Wampler's unicon 
contributions into the main Unicon distribution. Their unidoc has always been 
more robust than our previous offering so it is slated to become the official 
unidoc shortly. However, there are some tricky parts to the integration and I 
have been slow. I'll try to get it done Soon.

Cheers,
Clint

Sent from my LG G6, an AT&T 4G LTE smartphone

-- Original message--
From: Jay Hammond via Unicon-group
Date: Thu, Jun 8, 2017 7:37 AM
To: Jafar Al-Gharaibeh;Unicon;
Cc:
Subject:Re: [Unicon-group] Unidoc info

sorry, I meant to send:


Hi Jafar,
  I looked for local unidoc files.  I found
  
...\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\README",06/03/2017,04:41,133

but 133 bytes is not enough for documentation; it says (dated 2017)
that  Unidoc is preserved in case it's useful.
It implies that it is deprecated. Is unidoc the tool you really need?

  \Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\main.icn

main.icn shows options for selecting html or  roff outputs. You have to
source the browser  or formatter.

(there was once a roff to TeX translator; CTAN will have it if it is
still usable)

I'm not sure what inputs unidoc looks for. It has a procedure to start
with a hint and expand it to a set of files.
I've not opened that piece of source.

I hope these clues tell you something you did not know.
best wishes, Jay



Path, Date,
  Time,Size,Bytes
\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\README",06/03/2017,04:41,133
\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\docs\docs_macros",27/02/2004,17:28,427
\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\docs\library.doc",27/02/2004,17:28,434
\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\docs\macros",27/02/2004,17:28,4182
\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\docs\macros_ms",27/02/2004,17:28,1947
\Unicon\unicon-code-5088-trunk\unicon\uni\unidoc\parlett\docs\makefile",06/03/2017,06:05,434
\UniconDox\UniconUtils\Samples\UniDoc\buildDocs.sh",24/02/2003,14:46,372
\UniconDox\UniconUtils\Samples\UniDoc\buildIPLdoc.sh",24/02/2003,14:46,532



On 08/06/2017 06:47, Jafar Al-Gharaibeh wrote:
 >
 > Of course I tried the obvious :
 >
 > unidoc foo.icn
 >
 > which gets me:
 >
 > Couldn't find package info for package foo.icn
 >
 > Which I couldn't decipher.
 >
 > --Jafar
 >
 > On Thu, Jun 8, 2017 at 12:27 AM, Jafar Al-Gharaibeh
 wrote:
 >
 > Hi,
 >
 >Is there any documentation about Unidoc or how to use it? I
would like to give it a try but from a quick search I don't seem to find
any reference  about it.
 >
 > Thanks on Advance,
 > Jafar

 > Unicon-group mailing list
 > Unicon-group@lists.sourceforge.net
 > https://lists.sourceforge.net/lists/listinfo/unicon-group



--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] How to determine what packages are currently in use

2017-05-30 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,


Regarding packages, they are implemented entirely via name mangling, and there 
is not a standard way to extract package information from a running program or 
an icode file.  There is package information in the uniclass.* gdbm databases 
stored in each source directory, but those files will not tell you what 
packages a particular program has imported.


Cheers,
Clint


From: Bruce & Breeanna Rennie 
Sent: Monday, May 29, 2017 7:03:15 AM
To: Unicon group
Subject: [Unicon-group] How to determine what packages are currently in use

Greeting to all this evening,

Is there any standard way to determine what packages are currently in
use within a unicon program. I can use globalnames(&main) or
lang::get_class_for_name("knownclassname") or a combination of both to
get the various classes defined and use a variation of
Utils::mapPackageInt2Ext() to attempt to find this out, but if there is
a relatively standard way to do this, I would prefer to go that way.

In writing the Starship Simulator application, I have found that I can
usefully use some of Steve Wampler's and Robert Parlett's class
hierarchies to write the code.  To that end, I am trying to resolve how
to use these class hierarchies and I have come across as situation where
it would be useful to know what packages are in use. Each of the class
hierarchies have some crossover in functionality and have different ways
of doing the same thing which is now also part of the unicon main system
- classes, method names and methods, member names.

But in all of this, no easy way to determine what packages are
available/in use. Both these gentlemen use packages to build their class
hierarchies. Adding to that mix, I have my own set of classes that I
have found also duplicates some of their functionality as well as add
specific facilities I want.

Any thoughts gentlefolk?

regards

Bruce Rennie

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] X.org/Wayland

2017-04-19 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Shawn,


I don't think we'll know for sure until it gets here.  Best case scenario is: 
they switch some internal infrastructure but it is invisible to us. Expected 
case scenario is: we eventually have to add another package (XWayland) in order 
to run our graphics on some Linux distros. Apple did the same thing as far as 
X11 (and therefore Unicon) graphics support -- for several golden versions OSX 
bundled X11 compatibility standard (at the time that I bought my last Apple), 
then they dropped it. Worst case scenario is: we can't run our graphics any 
more on Ubuntu, unless/until someone writes our graphics facilities in a new 
"Wayland" API. That last scenario is unlikely, as a lot of programs are written 
for X.


Clint


From: Shawn Fratis 
Sent: Wednesday, April 19, 2017 7:09:29 PM
To: unicon-group@lists.sourceforge.net
Subject: [Unicon-group] X.org/Wayland

Will any of this affect Unicon, or Icons graphics?


Ubuntu 17.10 To Have Wayland Display Server As Default
https://www.fossbytes.com/ubuntu-17-10-wayland-default-server
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Windows Unicon 13.0 - R5080 benchmark suite

2017-04-18 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Jay,


I am gonna take a wild guess here and say: Windows does not like it very much 
when we try and write data files in directories that were created as part of a 
Windows application install. Besides what you've perceived as a permissions 
issue, I've seen really weird behavior trying to modify such directories, like 
the open/write commands succeed, but the output didn't happen, or happened in 
some weird shadow directory and not in the actual directory where it was 
expected. Between that, and interesting differences between your GNU\Unx make 
and bash, and any deficiencies that end up being in my umake and ush, we are 
not in business on benchmarks built from Windows binaries, are we. Sorry.


I think we can track this down fairly swiftly. I would start by copying (cp -r? 
 xcopy /S?) the tests\bench directory to someplace that you can write on, like 
\users\Jay\bench or whatever. From such a writable directory, we can then start 
sorting the "make" issues, if they do not magically vanish due to escaping from 
"Windows shadow directory hell".


Sorting the make issues may be tougher for me since I most likely do not use 
whatever you use for your GNU\Unx make and bash. Portability of said tools has 
been a continual joy as we move from Windows version to Windows version, and 
emulation subsystem to emulation subsystem.  I have eschewed Cygwin and leave 
that to others to support. I have used MSYS before and am pretty OK with it. I 
have had make.exe or sh.exe that worked for years suddenly fail when a new 
Windows came out, so I have written umake.icn and ush.icn and am willing to 
support them, but they aren't real UNIX and that will always be problematic for 
some folks.


I will download Jafar's new binaries and see if I can reproduce your problems 
and/or construct a recipe for you.


Cheers,

Clint


From: Jay Hammond 
Sent: Tuesday, April 18, 2017 10:32:19 AM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Windows Unicon 13.0 - R5080 benchmark suite

I don't know make. I need a recipe. So I am floundering around. First
the setup, then what I tried.

Fresh install of Unicon 13.0 R5080 as administrator into C:\Unicon
on a windows 10 HP laptop
OS NameMicrosoft Windows 10 Home
Version10.0.14393 Build 14393
ProcessorIntel(R) Core(TM) i5-4288U CPU @ 2.60GHz, 2601 Mhz, 2
Core(s), 4 Logical Processor(s)
System type x64-based PC,  8GB Ram,

All the commands below were run in a command window "run as
administrator"  (think  sudo bash )  because I had permissions problems
earlier.

"which" reports that make.exe and sh.exe are found in
C:\Program Files(x86)\GNU\Unx

the readme in C:\Unicon\tests\bench\icon says that I can prepare for
benchmarking with
  make benchmark
cd C:\Unicon\tests\bench\icon
make benchmark
gives
make benchmark-icont
...
translating rsg
make[2]: *** [compile-icont] Error 1
make[2]:Leaving directory `C:/Unicon/tests/bench/icon'
make[2]: *** [benchmark-icont] Error 2
make[2]:Leaving directory `C:/Unicon/tests/bench/icon'
make: *** [benchmark] Error 2

back at prompt
it made some bat files, and some .u files.

umake benchmark
gave
umake: -1 exit by "\t benchmark-icont"

no better if I repeat it.

--
back to a clean version of C:\unicon\tests

run make on c:\Unicon\tests\bench
make

makefile:198: target `Clean' given more than once in the same rule.
unicon -s -c pool.icn
process_begin: CreateProcess((null), unicon -s -c pool.icn, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [pool.u] Error 2
dir pool*.* shows pool.icn in C:\Unicon\tests\bench .

back to a clean version of C:\unicon\tests

umake test
the last error is
{&null . clone} from line 129 in umake.icn

('test' has no referent it seems)

oH WELL.
cd C:\Unicon\tests\bench

umake

generating input files.'generate.out is not recognised as an
internal or external command,
operable program or batch file.

"'generate.out' is not recognised as an internal or external command,
operable program or batch file."  appears 9 times

dir *.dat shows 9 empty .dat files with [integer] || "-" || ("mil" or
"thou") || ".dat" names e.g.25-mil.dat
ipxref.dat has today's date & time size 1.6MB  2 other dat files are
dated 2016 (so must have been precomputed)

running umake again gives no errors, but the mil and thou data files are
empty as before

running a compiled fasta.icn  will create the mil and thou  data files.
I did that a few days ago.
I'll reinstate them and carry on in a later session.

---
jay


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

Re: [Unicon-group] Question regarding pattern matching

2017-04-16 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,


There are two ways to use the interesting new pattern type.  The ?? operator 
starts a new string scanning environment to evaluate a pattern.

The unary = operator has been extended to accept a pattern argument, and 
matches it at the position within the current string scanning environment. So 
the answer to your question is yes ... for the =p operator.  The s??p operator 
resets the position to 1 to do its job, and restores the current scanning 
environment after it is finished.


Clint


From: Bruce & Breeanna Rennie 
Sent: Sunday, April 16, 2017 6:39:25 AM
To: Unicon group
Subject: [Unicon-group] Question regarding pattern matching

Good evening to all,

Just a simple question, which doesn't appear to be answered in UTR18.
Are &subject and &pos the basis on which pattern matching is done? Can
we set &pos to be at any valid position within the pattern?

regards

Bruce Rennie



--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


[Unicon-group] benchmarks

2017-04-11 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Thanks to everyone who sent me benchmarks.


Things I've noticed:


1. Unicon 13 is generally faster than Unicon 12.  Range is 5% to 400%, typical 
might be 70-80%.

2. We improved our calculation of CPU clock speed on Linux; need to develop one 
on MacOS.

3. Some Concurrent benchmarks run slower than sequential on some folks' 
machines. Range is 6x slowdown to 12x speedup.

 I think it is fair to say some pthreads implementations are better than 
others, and some CPUs better than others for threading.

 The range of numbers will also be helpful for future study.


Clint
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


[Unicon-group] Help us test/update the benchmarks

2017-04-11 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Your Unicon pop challenge of the day, should you choose to accept it, is to cd 
into your tests/bench directory, type "make" and "./run-benchmark" and report 
your results if a similar machine is not already reported on unicon.org/bench.


Folks using binary distributions might not get to have the fun; not sure if 
binaries have tests/bench or a

"make" program for compiling them.


I ran mine today on my desktop at work and found my current machine running 
almost 10x faster than a previous desktop machine where I ran the benchmarks 
for Unicon version 12.


I would say: we haven't collected enough data yet to call the benchmarks 
"mature" and are still kicking the tires on the process, so problem reports are 
also welcome.


Cheers,

Clint
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unexpected garbage collections

2017-04-11 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Don: the compiler is as clever as you make it, but it cannot optimize away the 
trapped variables that are

implicit side effects of various VM instructions that it generates. It needs 
the cooperation of the VM in

the form of alternative instructions for known "read-only" uses of certain 
operators.


David: you are right, the hard part is modifying the translator. It is 
under-documented legacy C code dating from around 1980.

I have prototyped the adding of the virtual machine instruction in the VM 
before,  it is not the problem.


From: Don Ward 
Sent: Tuesday, April 11, 2017 12:26:07 AM
To: Jeffery, Clint (jeffe...@uidaho.edu)
Cc: Unicon Group; David Gamey
Subject: Re: [Unicon-group] Unexpected garbage collections

Just a thought:  Is the compiler clever enough to optimise away the trapped 
variable? It has enough information in principle.

On 11 Apr 2017, at 03:14, Jeffery, Clint 
(jeffe...@uidaho.edu<mailto:jeffe...@uidaho.edu>) 
mailto:jeffe...@uidaho.edu>> wrote:

Hi David,

Good catch, you have bumped into one of my pet peeves.

Generators are often slower than non-generators, but not because of (or causing 
of) garbage collections, particularly -- they do their magic on the stack, not 
on the heaps.

Bruce is right, several Icon functions and operators such as x[y] allocate 
"trapped variables" just in case the surrounding code might want to assign to 
it.  But in many applications, structures are read from over and over and the 
trapped variables are avoidable.

On my todo-list and the Unicon help wanted list for several years now is: add 
another virtual machine instruction for x[y] when the surrounding syntax 
guarantees that it will not be assigned to, in which case the underlying code 
can avoid the heap allocation.  It is non-trivial enough that it won't get done 
on its own, someone has to volunteer, or someone has to commit some resources 
to it.  I might do it myself if ever it makes it to the top of my priority list.

Cheers,
Clint

From: David Gamey mailto:david.ga...@rogers.com>>
Sent: Monday, April 10, 2017 6:49:28 PM
To: David Gamey; Unicon Group
Subject: Re: [Unicon-group] Unexpected garbage collections

An update

My spidey senses were way off.

Just running every vs while with no do produced zero collections. I replaced 
the call with
every !N doT_Digits["2"]
And the collections dropped to half. So the ?S_digits is a culprit. Wonder 
where the other half are from.
David


From: David Gamey mailto:david.ga...@rogers.com>>
To: Unicon Group 
mailto:unicon-group@lists.sourceforge.net>>
Sent: Monday, April 10, 2017 9:27 PM
Subject: [Unicon-group] Unexpected garbage collections

Hi folks,

Over the years I've learned some interesting things about the garbage collector 
and some builtin functions. Usually these show up because of a combination of a 
badly understood choice and huge numbers of iterations resulting an 
"interesting" if not pathological abuse of memory.

Once again I've stumbled upon what I think are unexpected garbage collections 
and hoped for some insight.  Some of this is just about understanding how the 
garbage collector is working as much as it is about if things could be made 
faster.

I was looking at a problem that required trillions of operations so I began 
looking at just how some of the basics performed. So I broke down the problem 
into pieces and ran some benchmarks.

This benchmark was to look at how single digit strings convert to integers.  So 
I thought of integer(x), ord(x)-48, Digits[x], find(x,digits)-1 just to see 
what happens.  Over several benchmarks and magnitudes  table is fastest, 
integer almost as fast, ord, the find taking about 160% the time.

I was surprised to see as many collections in flat code for a table lookup.  
Now I know 192 collections for 10^8 operations isn't alot but it's just a table 
lookup.


  *   even ?S_digits causes about 1/2 the number of collections.  But why in 
the block region?
  *   The table lookup is actually fastest but it generates twice the 
collections.

My spidey senses are telling me to try this without using every but I'm just 
guessing.

Here's the relevant code:

procedure main(arglist)

every (T_Digits := table())[d := !(S_Digits := string(&digits))] := d

O := options(copy(arglist),"-h!-N+-ON+")
N := \O["N"] | 10^\O["ON"] | stop("Usage: "||&progname||" [-N itteration] 
[-ON itterationmagnitude]")
printf("\nBenchmarking with %d itterations\n",N)
printf("%s\n",&version)

regionstat()
gcolstat()
t := &time# Start 
measurement

every !N doT_Digits[?S_Digits]

printf("Execution time = %d\n&quo

Re: [Unicon-group] Unexpected garbage collections

2017-04-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
David,


There's no manual way to make x[y] not allocate a trapped variable. Some things 
that allocate trapped variables have alternative forms of access (for example, 
function calls) that are cheaper, but others do not.


Wall clock time is wall clock time. If it is faster it is faster, even if it 
has more collections.

Failing silently is not supposed to happen, so it is not obvious what to tell 
you to do to catch it. We welcome sample programs with instructions on how to 
make them crash. C programmers have measures they can take to help us hunt bugs 
in the runtime system if you can't share the program and problem reproducibly. 
I could e-mail with you offline about that.

Cheers,
Clint


From: David Gamey 
I didn't even know about trapped variables.  I assume there is no manual way to 
facilitate this.  Like de-referencing it? Not as elegant as it figuring it out 
by itself but useful.

I also assume that differences in &time include collection time.  So if the 
time is still faster with collections, it should still makes sense to use that 
variant.

However, I think I tried 10^11 iterations and the program looked like it 
terminated silently which will be a problem. Anyway I can find out why?

I don't need to use rand as that was just for simulation. Just process digits 
from lots of files. I got curious how much variation there might be in speed.  
I didn't expect the collections.

Guess I should stop picking at threads in sweaters too. :)

David


____________
From: "Jeffery, Clint (jeffe...@uidaho.edu)" 
To: Unicon Group ; David Gamey 

Sent: Monday, April 10, 2017 10:14 PM
Subject: Re: [Unicon-group] Unexpected garbage collections

Hi David,

Good catch, you have bumped into one of my pet peeves.

Generators are often slower than non-generators, but not because of (or causing 
of) garbage collections, particularly -- they do their magic on the stack, not 
on the heaps.

Bruce is right, several Icon functions and operators such as x[y] allocate 
"trapped variables" just in case the surrounding code might want to assign to 
it.  But in many applications, structures are read from over and over and the 
trapped variables are avoidable.

On my todo-list and the Unicon help wanted list for several years now is: add 
another virtual machine instruction for x[y] when the surrounding syntax 
guarantees that it will not be assigned to, in which case the underlying code 
can avoid the heap allocation.  It is non-trivial enough that it won't get done 
on its own, someone has to volunteer, or someone has to commit some resources 
to it.  I might do it myself if ever it makes it to the top of my priority list.

Cheers,
Clint

From: David Gamey 
Sent: Monday, April 10, 2017 6:49:28 PM
To: David Gamey; Unicon Group
Subject: Re: [Unicon-group] Unexpected garbage collections

An update

My spidey senses were way off.

Just running every vs while with no do produced zero collections. I replaced 
the call with
every !N doT_Digits["2"]
And the collections dropped to half. So the ?S_digits is a culprit. Wonder 
where the other half are from.
David


From: David Gamey 
To: Unicon Group 
Sent: Monday, April 10, 2017 9:27 PM
Subject: [Unicon-group] Unexpected garbage collections

Hi folks,

Over the years I've learned some interesting things about the garbage collector 
and some builtin functions. Usually these show up because of a combination of a 
badly understood choice and huge numbers of iterations resulting an 
"interesting" if not pathological abuse of memory.

Once again I've stumbled upon what I think are unexpected garbage collections 
and hoped for some insight.  Some of this is just about understanding how the 
garbage collector is working as much as it is about if things could be made 
faster.

I was looking at a problem that required trillions of operations so I began 
looking at just how some of the basics performed. So I broke down the problem 
into pieces and ran some benchmarks.

This benchmark was to look at how single digit strings convert to integers.  So 
I thought of integer(x), ord(x)-48, Digits[x], find(x,digits)-1 just to see 
what happens.  Over several benchmarks and magnitudes  table is fastest, 
integer almost as fast, ord, the find taking about 160% the time.

I was surprised to see as many collections in flat code for a table lookup.  
Now I know 192 collections for 10^8 operations isn't alot but it's just a table 
lookup.


  *   even ?S_digits causes about 1/2 the number of collections.  But why in 
the block region?
  *   The table lookup is actually fastest but it generates twice the 
collections.

My spidey senses are telling me to try this without using every but I'm just 
guessing.

Here's the relevant code:

procedure main(arglist)

every (T_Digits :

Re: [Unicon-group] Unexpected garbage collections

2017-04-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi David,


Good catch, you have bumped into one of my pet peeves.


Generators are often slower than non-generators, but not because of (or causing 
of) garbage collections, particularly -- they do their magic on the stack, not 
on the heaps.


Bruce is right, several Icon functions and operators such as x[y] allocate 
"trapped variables" just in case the surrounding code might want to assign to 
it.  But in many applications, structures are read from over and over and the 
trapped variables are avoidable.


On my todo-list and the Unicon help wanted list for several years now is: add 
another virtual machine instruction for x[y] when the surrounding syntax 
guarantees that it will not be assigned to, in which case the underlying code 
can avoid the heap allocation.  It is non-trivial enough that it won't get done 
on its own, someone has to volunteer, or someone has to commit some resources 
to it.  I might do it myself if ever it makes it to the top of my priority list.


Cheers,

Clint


From: David Gamey 
Sent: Monday, April 10, 2017 6:49:28 PM
To: David Gamey; Unicon Group
Subject: Re: [Unicon-group] Unexpected garbage collections

An update

My spidey senses were way off.

Just running every vs while with no do produced zero collections. I replaced 
the call with
every !N doT_Digits["2"]
And the collections dropped to half. So the ?S_digits is a culprit. Wonder 
where the other half are from.
David


From: David Gamey 
To: Unicon Group 
Sent: Monday, April 10, 2017 9:27 PM
Subject: [Unicon-group] Unexpected garbage collections

Hi folks,

Over the years I've learned some interesting things about the garbage collector 
and some builtin functions. Usually these show up because of a combination of a 
badly understood choice and huge numbers of iterations resulting an 
"interesting" if not pathological abuse of memory.

Once again I've stumbled upon what I think are unexpected garbage collections 
and hoped for some insight.  Some of this is just about understanding how the 
garbage collector is working as much as it is about if things could be made 
faster.

I was looking at a problem that required trillions of operations so I began 
looking at just how some of the basics performed. So I broke down the problem 
into pieces and ran some benchmarks.

This benchmark was to look at how single digit strings convert to integers.  So 
I thought of integer(x), ord(x)-48, Digits[x], find(x,digits)-1 just to see 
what happens.  Over several benchmarks and magnitudes  table is fastest, 
integer almost as fast, ord, the find taking about 160% the time.

I was surprised to see as many collections in flat code for a table lookup.  
Now I know 192 collections for 10^8 operations isn't alot but it's just a table 
lookup.


  *   even ?S_digits causes about 1/2 the number of collections.  But why in 
the block region?
  *   The table lookup is actually fastest but it generates twice the 
collections.

My spidey senses are telling me to try this without using every but I'm just 
guessing.

Here's the relevant code:

procedure main(arglist)

every (T_Digits := table())[d := !(S_Digits := string(&digits))] := d

O := options(copy(arglist),"-h!-N+-ON+")
N := \O["N"] | 10^\O["ON"] | stop("Usage: "||&progname||" [-N itteration] 
[-ON itterationmagnitude]")
printf("\nBenchmarking with %d itterations\n",N)
printf("%s\n",&version)

regionstat()
gcolstat()
t := &time# Start 
measurement

every !N doT_Digits[?S_Digits]

printf("Execution time = %d\n",&time - t)# End measurement

gcolstat()
&dump := 1
end

And the output from running oddcollections.exe -ON 8 run on windows 10

Benchmarking with 1 itterations
Unicon Version 12.3.  Feb 29, 2016
®ions {static, string, block} regions : 0, 41556459, 41556459
&collections {heap, static, string, block} regions : 0, 0, 0, 0
Execution time = 9386
&collections {heap, static, string, block} regions : 192, 0, 0, 192
I also bench marked smaller units of code like every !N do ?S_Digits
convertdigitsbench.exe  -ON 10
Benchmarking with 100 itterations
®ions {static, string, block} regions : 0, 41556459, 41556459
&collections {heap, static, string, block} regions : 0, 0, 0, 0
Time for 100 itterations of procedure _S_Digits   =551978 -- 
&collections {heap, static, string, block} regions : 9634, 0, 0, 9633
Time for 100 itterations of procedure _T_Digits   =764066 -- 
delta &collections {heap, static, string, block} regions : 9634, 0, 0, 9633
Time for 100 itterations of procedure _integer=   1065958 -- 
delta &collections {heap, static, string, block} regions : 9634, 0, 0, 9633
Time for 100 itterations of procedure _ord=   1191238 -- 
delta &collections {heap, static, string, block} regions : 9634, 0, 0, 9633
Time fo

Re: [Unicon-group] Unicon regex string pattern constructor

2017-03-13 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,


I am leery of conducting such discussions on the mail unicon group, they would 
be better on unicon-ldif or on private e-mail. So I will send you answer by 
private e-mail. If others want to hear it, let me know and subscribe to 
unicon-ldif and I will answer it there.


Clint


From: Bruce & Breeanna Rennie 
Sent: Monday, March 13, 2017 5:33:21 PM
To: Contact - clint.jeff...@gmail.com; Unicon group
Cc: homem...@talktalk.net; Phillip Thomas
Subject: Re: [Unicon-group] Unicon regex string pattern constructor

Good morning Clinton et al,

As I am one of those trying to replace the lexer for regular
expressions, I had a thought this morning about using Robert Alexander's
rexexp.icn as a base for your process and for handing the regex patterns
in the unicon compiler.

The code that I was going to use to switch lexers when coming across <
and > is still being worked on. However, I am thinking of taking a
little detour to see what can be used from the RePat procedure to create
the alternate lexer inside the compiler.

My question to you Clinton and anyone else that  has any ideas regarding
this - what effects would trouble users when using this facility in
conjunction with the existing pattern matching functions available
(other than the one Clinton has given of SNOBOL being shortest and not
longest first).

Just an idea, I have not looked at the interaction just yet. Just had
the idea when I got home with my wife from downtown.

regards

Bruce Rennie

On 01/03/17 07:01, Clinton Jeffery wrote:
> Hi,
>
> I am working on a library module that converts a string (containing a
> regular expression) into its corresponding pattern. This is the
> runtime equivalent of what the Unicon translator does when it sees a
> regular expression, except Unicon writes out pattern constructor
> source code as strings, rather than actually construct the pattern.
>
> The easy part turned out to be fairly easy: ripping the regular
> expression grammar out of the Unicon grammar into a separate .y file
> was pretty easy.
> Wiring it up to Unicon's lexical analyzer was pretty easy since
> unilex.u is already in uni/lib, as is tree.u for constructing parse
> trees.  Slightly harder is the part I haven't done yet, which is:
> given a regular expression parse tree, walk the parse tree and build
> the pattern. The reason this is harder, at present, is that Unicon's
> code generator for regular expressions takes a lot of short cuts,
> emitting strings that will work as source code to construct various
> patterns, instead of properly building parse tree nodes everywhere. A
> by-product of this effort is likely to be: eliminating a bunch of
> short cuts and building tree nodes instead of strings for various things.
>
> There is a separate issue which has bothered one or more of you enough
> that you have worked on it or looked into working on it, which is that
> our semantics of regular expressions are at present constrained by
> Unicon's lexical rules. Spaces are spaces, pound signs are comments,
> etc. If you really hate that, you write a new lexical analyzer for
> regular expressions that you switch into while parsing them, and
> switch back when you are finished.  For now, I will treat that as a
> separable issue and ignore it, but we will likely return to it.
> Perhaps one of you will send me an amazing new unilex.icn that we all
> will agree works better for its regex handling.
>
> Another separate issue, which I think is more serious, is that SNOBOL
> pattern matching returns the shortest match, not the longest match, so
> using SNOBOL patterns to implement regular expressions will produce
> counterintuitive results by default for folks used to using regular
> expressions in other tools. But again, I think this is a separate
> issue, one we can address if/when we feel it necessary.
>
> To sum up: I think it won't be too awful hard to make a library module
> to build a pattern from a string containing a regular expression. That
> won't solve all the current regular expressions' shortcomings, but it
> will make it easier to do certain experiments and make incremental
> progress, and perhaps it will allow a closer to head-to-head
> comparison with the IPL regexp.icn library.
>
> IT IS NOT FINISHED, but I am attaching my work-in-progress for your
> amusement. Please do not redistribute, but feel free to send me fixes.
> If you are interested in following along before I finish and put it in
> svn, please let me know and I will send you updates, otherwise feel
> free to wait.
>
> This version has a main() for testing purposes. It doesn't actually do
> anything useful yet. The makefile rule assumes build directory is one
> of the uni/ subdirectories.
>
> rel: rel.y
> ../iyacc/iyacc -i rel.y
> unicon rel
>


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.l

Re: [Unicon-group] 1 percent of 33666572288 is 336665722

2017-02-16 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Jovan,


This looks like a stray printf left in whatever distribution was used to make 
the snapshot, probably my fault.  You could if you feel adventurous, remove the 
offending line (find the file by saying "grep percent *.r* | grep printf" in 
unicon/src/runtime). Otherwise, we'll have to make a new snapshot with that 
fixed.  Sorry 'bout that!


Regards,

Clint


From: Jovan Trujillo 
Sent: Thursday, February 16, 2017 2:20:41 PM
To: unicon-group@lists.sourceforge.net
Subject: [Unicon-group] 1 percent of 33666572288 is 336665722

Hi all,
 I just built the latest snapshot of Unicon from the website and for some 
reason everything I build with the "unicon" command prints out "1 percent of 
33666572288 is 336665722" when I execute it. I also see it when I run "unicon 
-version" and I saw it when I executed a simple hello world program. Anybody 
else getting this message?

Thanks,
Jovan
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


[Unicon-group] Icon / Unicon pop challenge

2017-02-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Dear Friends,


In addition to recently starting a developer's directory over on unicon.org to 
which you are cordially invited, I have been mulling over a problem that some 
of you might be able to help with.


The find() function uses a wonderful but naive string search algorithm no 
bigger than half-a-screen of C code.


How's about someone code up an alternative find() using Boyer-Moore (C code is 
available at 
https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm), and 
then see how it compares?  I would say to use loadfunc(), but find() is a 
generator and many of our benchmarks for testing it might end up using its 
generator-ness, so it might be good to do it directly in fstranl.r under an 
#ifdef.  But if you instead do it to find the first match using loadfunc() that 
would still be a useful example.


In any case, it seems like we ought to be able to see fairly easily if we have 
a cheap speedup available. What are your thoughts?


Cheers,

Clint

Boyer–Moore string search algorithm - 
Wikipedia
en.wikipedia.org
In computer science, the Boyer–Moore string search algorithm is an efficient 
string searching algorithm that is the standard benchmark for practical string 
search ...


--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


[Unicon-group] developer directory

2017-01-23 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi folks,


In evaluating Unicon (or Icon, or SNOBOL, our language family) for its 
suitability for various projects, companies or institutions may want to be 
aware of what level of technical expertise

is available for hire.  I am open to suggestions for how best to communicate 
this information,

but for starters, I've created a Developer Directory and placed a link to it on 
the Unicon home

page. I'd encourage any of you who are willing to be listed, to go ahead and 
get yourself on

the developer directory, and if you have suggestions on how to improve it, I am 
all ears.


If you have contacts with our sister mailing lists (e.g. the Icon group or 
SNOBOL group), I'd be

grateful if you'd share this invitation with them.


Cheers,
Clint

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Trapped variable processing and extending this facility to other user defined variables

2017-01-22 Thread Jeffery, Clint (jeffe...@uidaho.edu)

In graduate school, perhaps 1989 or so, one of our bigger homeworks was to 
implement a variable trap mechanism for assignments and for dereferences. I 
believe the variable trap notion originated in one of the SNOBOL dialects, or 
in SL5. From the 1989 class, there were about a dozen independent 
implementations performed... on Icon version 7 or so.  I do not know whether 
any of them could ever be found. One thing that I remember is: it is harder 
when you have to trap assignments to variables like L[i][j] or T[s] or r.x and 
not just simple variables.


I know that I have wanted it pretty badly, though: variable traps are needed in 
the udb debugger, to make a more efficient watch facility.  Logically, it is 
needed as part of the execution monitoring facilities.


So I propose a tweak to Bruce's question: *aside from debugging*, what uses can 
you think of, for catching all assignments to a particular variable?

Cheers,

Clint



From: Bruce & Breeanna Rennie 
Sent: Sunday, January 22, 2017 1:44:46 PM
To: Unicon group
Subject: [Unicon-group] Trapped variable processing and extending this facility 
to other user defined variables

Greetings to all,

Thanks to Clinton and Don Ward, we now have the new Unicon/Icon
Implementation Book available within the sourceforge download.

As I have been away from internet access, I have been reading the
current book as a evening activity. The section on trapped variables has
given rise to a question as follows.

Is there a use for or a need for this ability to associate a function
that can run when a value is assigned to a specific variable?

For example, in Unicon, one is allowed to define a default type and
value for procedure parameters. Is this a valid situation in which any
such variables could be created as trapped variable using a new system
defined function to make this a user define d trapped variable?

Are there other situations where such a facility could be useful?

regards

Bruce Rennie

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] The vagaries of creating a new copy of the Unicon Book from TeX sources.

2016-12-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
I have received a request before to get rid of the aeguill or some such, the 
special wolfmarks around a word that look like mini- less-than and greater-than 
marks; they look much nicer than <> . It is the most flagrant foul in our 
current book source as far as I know, requiring a french package.  So far I 
have not been willing to make the book uglier in order to make it easier to 
compile, but I would welcome solutions to this and other obstacles that we may 
identify.  In the meantime, if you don't feel like installing all of latex, 
enjoy the Unicon book in its PDF format!  I am sympathetic to the pain, but 
thusfar the requisite latex packages have not proven all that difficult to 
install and use.  Too bad latex isn't smart enough to autoinstall stuff on 
demand!


Cheers,

Clint


From: btif...@vivaldi.net 
Sent: Friday, December 9, 2016 6:41:44 PM
To: Bruce & Breeanna Rennie
Cc: Unicon group
Subject: Re: [Unicon-group] The vagaries of creating a new copy of the Unicon 
Book from TeX sources.





On Fri, Dec 9, 2016 at 08:50 AM, Bruce & Breeanna Rennie  
wrote:
Good evening/morning to all,

For those who may be attempting to create a new pdf from the Unicon TeX
sources, I have the following story.

If, like me, you are running on a Centos 6 system, the make file
provided will probably fail (if you are using tex-live as supplied).
There are missing macros which do not seem to be available in the distro
version of tex-live.

For building the UP docs and other Sphinx TeX output related materials, I 
usually install texlive-full, it's a few gigabytes of install, and most 
components sit idle, never used, but it saves on thinking through the thousands 
of sub packages.  After that, things all come together, dependencies met.  On 
this Xubuntu 16.04 box, and the Fedora 24 system, the makefile for ub.pdf just 
works.  Can't say which package(s) from the complete Tex suite make it work, 
but it does.


I suggest to those who experience this that you download the tex-live
2016 DVD iso and do a clean install using that. I did have problems
trying to do a net install of tex-live 2016 (failed 1/2 way through with
a hard non-resumable error). Do your install of the new tex-live and
after completing any path changes required, log-out, log-in and run make
and you will have the new version.

To the Authors, looks good with the changes that I have seen so far.
Thank you for your efforts in this work.

Agree.  Kudos deserved.

Cheers,
Brian


regards

Bruce Rennie

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Converting strings to patterns

2016-11-29 Thread Jeffery, Clint (jeffe...@uidaho.edu)
My thanks to Don, Jay, and anyone else who is trying out stuff related to 
patterns.  I am on the road ATM but will work on improving the diagnostics 
related to Jay's experiments.  Regarding Don's original request and Jay's 
comments on it: backquotes in patterns is not a full "eval" interpreter that 
will take arbitrary Icon strings and turn them into code.  Maybe we need that, 
and maybe someone will build it some day.  In the meantime, after figuring out 
the best workarounds that may be available, you can judge for yourself whether 
the patterns are still useful, or whether they remain unfinished business.


The basic question is: given a regular expression supplied as string data s, 
how best should we construct a corresponding pattern. The answer sadly is not 
<`s`>. The Unicon translator has a parser for regular expressions and emits 
pattern function calls for them, but we want to do it from the Unicon VM. 
Options include: write a library procedure that parses the regex and builds the 
corresponding pattern; write a library procedure that invokes the translator to 
do the work and use dynamic loading to get the code loaded; extend the language 
with a new built-in that does the same or similar; extend the backquotes 
operator to do what we want here; or use another idea that you think up.


Don: great minds think alike. When I started to update the Unicon book to talk 
about patterns, I immediately figured we needed to update the "grep" example to 
use patterns, and came up against the same issue you're asking about.  I 
haven't implemented a solution yet, but perhaps we should do option #1 and see 
what that looks like.


Cheers,

Clint


From: Jay Hammond 
Sent: Tuesday, November 29, 2016 1:55:07 PM
To: Don Ward; unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Converting strings to patterns


Hi Don,

I tried running your program.

To get it to do anything I had to change line 2, separate the local declaration 
and the assignment.

to clarify, repat is a (new) variable that I intend to hold a pattern

procedure main(args)
local f, line, re
re := pop(args)

write(re)

repat := re

every f := open(!args, "r") do {
while ( line := read(f) ) do {
if line ?? repat then write(line)
}
}
end

I created qqq.txt with the lines

QQQ
qqq
cqcqcq

and ran testpat QQQ qqq.txt after compiling testpat.icn

Output  was

QQQ

then the contents of qqq.txt

as if repat always matches. (it has the null value??)


I tried forcing repat to be a pattern (utr18 says that patterns are composed of 
strings concatenated or alternated)  so I tried

repat := re  .|  fail()

repat := re  .|  re

but the pattern building process gave me node errors at compile time.

dopat2.icn:6: # "re": syntax error (237;349)
File dopat2.icn; Line 16 # traverse: undefined node type

line 16 is the line after end in main, i.e. program source end.


I tried using the -f s option at the compile step, so as to use unevaluated 
expressions in  patterns

like

repat :=  <  `re` >

# that syntax ought to force a pattern!

node traversal errors again. And the backquotes were not recognised. Perhaps I 
put the -f s option in the wrong place?


I also tried

repat :=  < Q > ||   < Q > ||   < Q >

dopat2.icn:6: # "repat": invalid argument in augmented assignment
File dopat2.icn; Line 16 # traverse: undefined node type

so it is not considering || to be pattern concatenation

repat :=  <  Q  ||  Q ||  Q >

gave the same error!

So although UTR18 seems to give options for converting strings to patterns I 
have not had any luck so far.

Jay

On 29/11/2016 14:33, Don Ward wrote:
Here is a very simple (and simple minded) grep program. The idea being to apply 
a Unicon regexp pattern to a series of files, just like grep

procedure main(args)
local f, line, re := pop(args)

every f := open(!args, "r") do {
every line := !f do {
if line ?? re then write(line)
}
}
end

Of course, it doesn’t work because in line 6  I have a string instead of a 
pattern.

Is there any way to convert the contents of re from a string to a pattern?

After reading UTR18 again (and again), I’ve come to the conclusion that there 
isn’t any way to do it.
The pertinent extract from UTR18 is in section 4.5.3 "Limitations due to lack 
of eval()”.
But before I give up on the idea entirely, I thought I’d check to see if my 
understanding is correct.

Don



--




___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-g

[Unicon-group] SIGALRM

2016-11-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Michael,


Always nice to hear from a fellow Washingtonian.


I am aware of various alarming things being done in Unicon before, but have not 
seen code of the sort you describe.  It should be a great test of trap() and 
the posix facilities. In grepping for possible interactions, I noticed that the 
URL-reading code in the messaging facilities sets a SIGALRM handler to do a 
timeout when it attempts to connect to a web server, but as long as you are not 
simultaneously trying to open() things with mode "m" you should be OK.


Cheers,

Clint


-

MM> I'm writing a unicon program that needs to set a timer. Has anyone every 
written a c loadfunc for setitimer and/or getitime so that the unicon program 
can trap SIGALRM and know when the interval has expired. Thought I would check 
to see if anyone had already done it before trying to build it.

  #include 

   int getitimer(int which, struct itimerval *curr_value);
   int setitimer(int which, const struct itimerval *new_value,
 struct itimerval *old_value);
--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Resize Graphics window programatically?

2016-11-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)

Steve,


Your program issuing a resize request for every resize event seems to be 
tickling a pathology of some sort. If you start dragging real slow, it seems to 
work (at least on my machine) but then goes bonkers. Its an infinite loop, 
since Pending() never fails.  But my sense is that after it falls behind a 
certain amount, resize events and resize requests form their own feedback loop. 
It is either that or some kind of competition between the window system and the 
application, as to who is processing input events, and which window retains the 
focus. It is like: we are having to repaint the window so many times, the 
window system isn't able to continue the drag/resize operation at speed any 
more.


Feel free to contribute improvements to the C code for handling window resizes. 
It tries pretty hard to do things like suppress adjacent resizes to avoid 
falling behind, but maybe your explicitly resizing in the middle of that 
defeats the code that is there.

Cheers,

Clint



From: Steve Wampler 
Sent: Thursday, November 10, 2016 6:25:02 PM
Subject: Re: [Unicon-group] Resize Graphics window programatically?

On 11/10/2016 03:36 PM, Jafar Al-Gharaibeh wrote:
> Steve,
>
> I tried the on my Ubuntu machine:
> procedure main()
>w := open("resize", "g", "size=400,400")
>Event(w)
>WAttrib(w, "size=800,400")
>Event(w)
>close(w)
> end
>
> It works as advertised. Want to test it at your end?

That works, but the following version doesn't (where the user can
drag out a new window size):

procedure main()
w := open("resize", "g", "size=400,400", "resize=on")
repeat {
while Pending(w) do {
Event(w)
x := WAttrib(w, "width");
WAttrib(w, "size="||x||","||x)
}
   }
close(w)
end

--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
[http://dap.xeonphi.com/images/fullimage4.jpg]

Developer Access Program (DAP) for Intel® Xeon Xeon Phi(tm) Processor Codenamed 
Knights Landing
sdm.link
Intel is bringing to market, in anticipation of general availability of the 
Intel® Xeon Phi(tm) Processor (codenamed Knights Landing), the Developer Access 
Program (DAP). DAP is an early access program for developers worldwide to 
purchase an Intel Xeon Phi Processor based system. This is a stand-alone box 
that has a single bootable Knights Landing processor for developers to start 
developing codes, optimizing applications, and getting to see the performance.


___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
Unicon-group Info Page - 
SourceForge
lists.sourceforge.net
To see the collection of prior postings to the list, visit the Unicon-group 
Archives. Using Unicon-group: To post a message to all the list members ...


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Found on the web

2016-09-27 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Shamim,


To answer your question: No.  But thanks for sharing your identity crisis 
publicly!

Pretty awesome.  I am sure it is all a "coincidence".


Clint


From: Rev. Shamim Mohamed, D.D., LFHCfS 
Sent: Tuesday, September 27, 2016 3:05:27 PM
To: Unicon List
Subject: [Unicon-group] Found on the web

Alright Clint, did you make this page as a joke?

http://people.bayt.com/shameem-mohammed-12633193/

Pay attention to where he works

-s
--
A CEO, a Tea Party activist and a Union employee are sitting at a table. A 
plate of a dozen cookies sits in the middle of the table. The CEO takes 11 of 
the cookies, turns to the tea partier and says, "Watch out for that union guy. 
He wants a piece of your cookie."
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unable to build from Alpha 13.0

2016-09-19 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Steve,


There is a / missing off the front of opt/unicon/ipl/gincl. That might be the 
problem.


I will refrain from scolding you for setting LPATH and IPATH identically.  When 
I install (the whole of) unicon in a normal place and add unicon/bin on my 
path, I don't have to set them at all any more. But when I do set them, LPATH 
just needs the *incl directories, pretty much, plus unicon/uni/gui I suppose. 
IPATH just needs unicon/ipl/lib and the various unicon/uni/* directories.

Cheers,
Clint


From: Steve Graham 
Sent: Monday, September 19, 2016 3:41 PM
To: Unicon Group
Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

Thanks, Bruce and Clint.  Getting closer.

The program segment is:

import gui
$include "guih.icn"
...
   method component_setup() <-- Line 12
  self.setup()
   end


steve@steve-Satellite-L555D:/opt/unicon/bin$ echo $IPATH
/opt/unicon/ipl/lib /opt/unicon/ipl /opt/unicon/uni /opt/unicon/uni/ide 
/opt/unicon/uni/3d /opt/unicon/uni/gui /opt/unicon/uni/gui/ivib 
/opt/unicon/uni/ide /opt/unicon/uni/lib /opt/unicon/uni/parser 
/opt/unicon/uni/udb /opt/unicon/uni/udb/dta /opt/unicon/uni/udb/lib 
/opt/unicon/uni/unicon /opt/unicon/uni/unidep /opt/unicon/uni/unidoc 
/opt/unicon/uni/unilib /opt/unicon/uni/util /opt/unicon/uni/xml 
/opt/unicon/local /opt/unicon/ipl/incl /opt/unicon/ipl/procs 
opt/unicon/ipl/gincl

steve@steve-Satellite-L555D:/opt/unicon/bin$ echo $LPATH
/opt/unicon/ipl/lib /opt/unicon/ipl /opt/unicon/uni /opt/unicon/uni/ide 
/opt/unicon/uni/3d /opt/unicon/uni/gui /opt/unicon/uni/gui/ivib 
/opt/unicon/uni/ide /opt/unicon/uni/lib /opt/unicon/uni/parser 
/opt/unicon/uni/udb /opt/unicon/uni/udb/dta /opt/unicon/uni/udb/lib 
/opt/unicon/uni/unicon /opt/unicon/uni/unidep /opt/unicon/uni/unidoc 
/opt/unicon/uni/unilib /opt/unicon/uni/util /opt/unicon/uni/xml 
/opt/unicon/local /opt/unicon/ipl/incl /opt/unicon/ipl/procs 
opt/unicon/ipl/gincl

steve@steve-Satellite-L555D:/opt/unicon/bin$ unicon ht.icn
File guih.icn; Line 11 # $include: cannot open "keysyms.icn"

steve@steve-Satellite-L555D:/opt/unicon/bin$

keysyms.icn is in the /opt/unicon/ipl/gincl directory, which is the last one in 
IPATH and LPATH (which are identical).  Not sure why the file cannot be opened. 
 In the past this error message seemed to indicate that it could not be found.

Ideas?

Thanks again, Steve

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unable to build from Alpha 13.0

2016-09-19 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Steve,


So, you know doubt know "import" is not in Icon so that's why icont does not 
work for this program.

As for why unicon would not be finding guih.icn to include, guih.icn lives 
where, unicon/uni/gui. Normally

this is found magically by looking in some directories relative to where your 
iconx is on the path. If you've done some interesting things with installation 
locations, you might have to set your LPATH to include whatever location(s) you 
want to $include from, the old fashioned way.


If you haven't completed the adding Unicon to your path, and instead used an 
alias or something, that might explain not finding include directories relative 
to where iconx is found...


Cheers,

Clint


From: Steve Graham 
Sent: Saturday, September 17, 2016 6:05:03 PM
To: Unicon Group
Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

Clint,

Thanks, those instructions did the trick.

A few years ago with your help and those of others here in this group, I 
created my first real Windows GUI program.  I did such on a Windows 7 computer 
and tried recompiling that program today on my Ubuntu 16.04 system.  It fails 
to compile and I can't figure out why.

import gui
$include "guih.icn"
#
# To do
# 1.  On saving home teachers and families, only save those which are not 
assigned to routes
#

global dataStore, filef, fileht, filer, fromRoute, itemToBeMoved, 
procedureStore, routes

class Untitled : Dialog(panel_1, border_1, save_button, cancel_button, 
Route_1_Checkbox, Route_1_List, Route_1_label, Route_1_Families, 
Route_2_Checkbox, Route_2_List, Route_2_label, Route_2_Families, 
Route_3_Checkbox, Route_3_List, Route_3_label, Route_3_Families, 
Route_4_Checkbox, Route_4_List, Route_4_label, Route_4_Families, 
Route_5_Checkbox, Route_5_List, Route_5_label, Route_5_Families, 
Route_6_Checkbox, Route_6_List, Route_6_label, Route_6_Families, 
Route_7_Checkbox, Route_7_List, Route_7_label, Route_7_Families, 
Route_8_Checkbox, Route_8_List, Route_8_label, Route_8_Families, 
Route_9_Checkbox, Route_9_List, Route_9_label, Route_9_Families, 
Route_10_Checkbox, Route_10_List, Route_10_label, Route_10_Families, 
Route_11_Checkbox, Route_11_List, Route_11_label, Route_11_Families, 
Route_12_Checkbox, Route_12_List, Route_12_label, Route_12_Families, 
Route_13_Checkbox, Route_13_List, Route_13_label, Route_13_Families, 
Route_14_Checkbox, Route_14_List, Route_14_label, Route_14_Families, 
Route_15_Checkbox, Route_15_List, Route_15_label, Route_15_Families, 
Route_16_Checkbox, Route_16_List, Route_16_label, Route_16_Families, 
Route_17_Checkbox, Route_17_List, Route_17_label, Route_17_Families, 
Route_18_Checkbox, Route_18_List, Route_18_label, Route_18_Families, 
Route_19_Checkbox, Route_19_List, Route_19_label, Route_19_Families, 
Route_20_Checkbox, Route_20_List, Route_20_label, Route_20_Families, 
Route_21_Checkbox, Route_21_List, Route_21_label, Route_21_Families, 
Route_22_Checkbox, Route_22_List, Route_22_label, Route_22_Families, 
Route_23_Checkbox, Route_23_List, Route_23_label, Route_23_Families, 
Route_24_Checkbox, Route_24_List, Route_24_label, Route_24_Families, 
Route_25_Checkbox, Route_25_List, Route_25_label, Route_25_Families, 
Route_26_Checkbox, Route_26_List, Route_26_label, Route_26_Families, 
Route_27_Checkbox, Route_27_List, Route_27_label, Route_27_Families, 
Route_28_Checkbox, Route_28_List, Route_28_label, Route_28_Families, 
Route_29_Checkbox, Route_29_List, Route_29_label, Route_29_Families, 
Route_30_Checkbox, Route_30_List, Route_30_label, Route_30_Families, 
Route_31_Checkbox, Route_31_List, Route_31_label, Route_31_Families, 
Route_32_Checkbox, Route_32_List, Route_32_label, Route_32_Families, 
Route_33_Checkbox, Route_33_List, Route_33_label, Route_33_Families, 
Route_34_Checkbox, Route_34_List, Route_34_label, Route_34_Families, 
Route_35_Checkbox, Route_35_List, Route_35_label, Route_35_Families, 
Route_36_Checkbox, Route_36_List, Route_36_label, Route_36_Families)

...

---

steve@steve-Satellite-L555D:~/Desktop/HT$ icont ht.icn
Translating:
ht.icn:
ht.icn:1: # "import": invalid declaration
ht.icn:8: # ";": invalid declaration
  main
  copyFile
  getSelection
  handleAllHomeTeachers
  handleFamily
  handleHomeTeacher
  labelToList
  LoadTable
  makeRouteLabel
  makeSelectionList
  printReport
  putSelection
  removeDistrict
  repaintSelectionList
  SaveData
  saveTable
  sortedList
  toInternalIndex
2 errors

---

steve@steve-Satellite-L555D:~/Desktop/HT$ unicon ht.icn
File ht.icn; Line 2 # $include: cannot open "guih.icn"

steve@steve-Satellite-L555D:~/Desktop/HT$


____
From: "Jeffery, Clint (jeffe...@uidaho.edu)" 
To: Unicon Group ; Steve Graham 

Sent: Thursday, September 15, 2016 5:41 PM
Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

Hi Steve,

It sounds like you've got your path problem sorted out for an existi

Re: [Unicon-group] Unable to build from Alpha 13.0

2016-09-15 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Steve,


It sounds like you've got your path problem sorted out for an existing session 
by manually setting it, but you still want a path solution that will work 
automatically for each shell session in future.  You know, UNIX is a wonderful 
thing, and one of the

wonderful parts is that it has so many shells with different initialization 
files.  For example, you set your path in .profile, but

you don't mention what your shell is.  Maybe you needed to set it in .bashrc 
instead of .profile.  Or maybe you needed to set

it in .cshrc, with different syntax.  And you probably already know that after 
adding Unicon to your path in one of these files,

you have to either reboot, or re-login, or at least run the "source" command, 
in order for your change to take effect.


If I am walking into a generic UNIX and don't know what shell I am running, I 
run "ps" and it typically lists what shell process is executing. That tells me 
then, which initialization file and which syntax I have to use to modify my 
path.  For example, on my current Linux, I am running bash.  ~/.profile did 
work to add unicon to its PATH, but I did have to "source ~/.profile" or else 
re-login in order for the change to take effect.


Cheers,

Clint


From: Steve Graham 
Sent: Thursday, September 15, 2016 4:49:22 PM
To: Unicon Group
Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

I downloaded the file from http://unicon.org/dist/uni.zip

steve@steve-Satellite-L555D:/opt/unicon/bin$ ./unicon -features
Unicon Version 13.0 alpha.  Oct 1, 2015
UNIX
POSIX
DBM
ASCII
co-expressions
dynamic loading
environment variables
event monitoring
external functions
keyboard functions
large integers
multiple programs
pattern type
pipes
pseudo terminals
system function
messaging
graphics
X Windows
libz file compression
JPEG images
PNG images
CCompiler gcc 5.4.0
Physical memory: 3878723584 bytes
Revision
Arch x86_64
CPU cores 2
Binaries at /opt/unicon/bin/
steve@steve-Satellite-L555D:/opt/unicon/bin$

I tried adding /opt/unicon/bin to /etc/profile and ~/.profile, but the PATH was 
unchanged when starting up a new terminal.

When adding them to the PATH of an existing terminal, I am able to start ui and 
within ui am able to compile and run the program (only if it ends in .icn 
though).


Thanks, Steve


From: Jafar Al-Gharaibeh 
To: Steve Graham 
Cc: "Jeffery, Clint (jeffe...@uidaho.edu)" ; Unicon Group 

Sent: Thursday, September 15, 2016 3:04 PM
Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

Hello Steve,

Are you building off svn checkout? or downloading the zipped sources from 
unicon.org<http://unicon.org/>?
 "unicon -features" tells you which revision you have exactly. That might 
be useful when reporting a problem.
I tested ui and didn't and it worked with a hello world program. However 
the lines "Script started... Script done" lines seems to be something that 
shouldn't be there, I don't remember seeing them before.

Do you have "/opt/unicon/bin/" in your path?

--Jafar



On Thu, Sep 15, 2016 at 1:31 PM Steve Graham 
mailto:jsgraha...@yahoo.com>> wrote:
Another question on setup.

I downloaded and compiled Unicon again on the same system.  After remembering 
to make the change to Makedefs, it worked fine.  I placed the unicon directory 
in /opt.

I'm having trouble compiling from ui:

steve@steve-Satellite-L555D:/opt/unicon/bin$ ./ui <-- Brings up ui

Typing in the Hello Amigo program I select Run/Run, which results in a terminal 
window coming up which says:

Script started, file is /tmp/ui17730737.tmp
bash: ./Hello-Amigo: No such file or directory
Script done, file is /tmp/ui17730737.tmp

steve@steve-Satellite-L555D:/tmp$ cat ui17730737.tmp
Script started on Thu 15 Sep 2016 11:22:37 AM PDT
bash: ./Hello-Amigo: No such file or directory

Script done on Thu 15 Sep 2016 11:22:37 AM PDT
steve@steve-Satellite-L555D:/tmp$

What am I doing wrong here?


Thanks, Steve

________
From: Jafar Al-Gharaibeh mailto:to.ja...@gmail.com>>
To: Steve Graham mailto:jsgraha...@yahoo.com>>
Cc: "Jeffery, Clint (jeffe...@uidaho.edu<mailto:jeffe...@uidaho.edu>)" 
mailto:jeffe...@uidaho.edu>>; Unicon Group 
mailto:unicon-group@lists.sourceforge.net>>
Sent: Monday, August 15, 2016 12:31 PM

Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

Steve,

Thanks for the update. Not sure why you had the problem the first time. Maybe 
something went wrong during initialization/configuration. I also have see 
anonymous svn checkout/update to be unreliable/out-of-date in some rare 
occasions. I'm glad we got it sorted out anyway.

Cheers,
Jafar
On Mon, Aug 15, 2016 at 11:59 AM, Steve Graham 
mailto:jsgraha...@yahoo.com>> wrote:
Clint:  Thanks for the suggestions.

Jafar:
Your 

Re: [Unicon-group] Creating a maze game

2016-09-14 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Steve,


My advice is: have a lot of fun with this.


Simple games are often written directly to window (or screen) without a 
traditional GUI framework, because the GUI framework adds size, complexity, and 
indirection to your control of the screen. Many games will just implement their 
own minimalist (or fake) GUI as needed for game menus. But you can do a full 
GUI in a game, if you want.


To answer some of your questions: lots of languages are well setup for games, 
you may want to try a few and decide which you prefer.  On a browser, if that 
is a requirement, will narrow your field down quite a bit.  OpenGL is great but 
you only need it if you intend to do 3D, which is a bigger undertaking than 2D.


I have gone to great lengths to make Unicon suitable for game programming, but 
as for how well it competes that is for you to say.  In addition to Graphics 
Programming in Icon, and the 3D facilities in the Unicon Technical Report and 
the Unicon Book, folks interested in game programming in Unicon may want to 
look at


http://www2.cs.uidaho.edu/~jeffery/courses/328/ub-game.pdf


which is unfinished but pretty extensive.


Lastly, regarding eval(), we do not have a direct native eval() function and 
one is not in the immediate offing.  Multiple "eval" clones have been built for 
Icon and/or Unicon in the past, the most detailed perhaps was Bill Mitchell's.  
Last night I debugged an issue raised by the latest eval() experiment (Brian's, 
I think), the code for which is being reviewed for sanity. His approach is to 
write the code to be evaluated to a .icn file, compile it, load it in with 
load(), and execute it.  It will probably be a bit faster and more interactive 
that way than previous eval() efforts.


Cheers,

Clint


From: Steve Graham 
Sent: Wednesday, September 14, 2016 8:12:10 PM
To: Unicon Group
Subject: [Unicon-group] Creating a maze game

I would like to create a game for some grandsons:  Something that would include 
typical maze elements (walls, barriers, traps, jumping platforms, etc) and 
would allow them to enter in "code" to create or modify some of the elements.

It would be hosted on a Windows 7+ platform (platform-agnostic would be better 
for me) and would be coded in a lisp-family language (CL, Scheme, Racket, Arc, 
Logo, etc), Unicon and/or JavaScript.  I have been learning CL and Scheme, know 
a bit of Arc and Logo and a bit more of Unicon and JavaScript.

While I have been a medical information systems programmer for most of my 
career, it has been focused on CRUD (create/retrieve/update/delete) 
applications and interfacing (HL7 and proprietary).  I have virtually no 
experience with GUI and audio applications.

Here are some questions that have occurred to me:
1.  Which languages would be best?
2.  Which toolkits would help?  OpenGL?
3.  Can this be done on a browser?
4.  How does one control scrolling in different directions?  Do you create the 
screen in memory and then instruct the system to scroll in the direction of the 
newly created portion?
5.  Could you interface with one of the available free game engines?

Obviously this would not have to be world-class.  Just something a 10 and 12 
year old might like and perhaps from which they could learn how to do some 
elementary coding.

Regarding Unicon, I would like the ability to put in code during the play of 
the game -- like eval() in other languages -- and wonder if that is even 
possible in Unicon.

I would appreciate your input.


Thanks, Steve
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unicon Forums

2016-08-21 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Maybe it e-mails to a different e-mail address than you expect?  Like to your 
source forge e-mail address, instead of to dcsi.net.au ?  I bet there is a way 
to have that forwarded, since I probably do.   Clint


From: Bruce & Breeanna Rennie 
Sent: Sunday, August 21, 2016 5:33:29 PM
To: Jafar Al-Gharaibeh; Jeffery, Clint (jeffe...@uidaho.edu); 
unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Unicon Forums

Good morning Jafar,

I've checked my filters and nothing has come through, not even into my
sourceforge folder. At this point, I don't have any more ideas at my end.

regards

Bruce Rennie


On 22/08/16 09:44, Jafar Al-Gharaibeh wrote:
> Good Morning Bruce!
>
> I don't think yo need to be registered specifically with Unicon to get
> forum updates. We could be missing something on our end also. Did you
> make sure your email spam filter is not blocking those emails?
>
> Regards,
> Jafar
>
> On Sun, Aug 21, 2016 at 6:11 PM Bruce & Breeanna Rennie
> mailto:bren...@dcsi.net.au>> wrote:
>
> Good morning Clinton and Jafar,
>
> Even though I am registered on Sourceforge, I have not been able
> to get
> the discussions forwarded to my email address. Mayhaps, I need to be
> registered against the Unicon project first, I don't know. I can
> update
> various things on my profile except (it seems) getting any of the
>     discussions to come my way.
>
> regards
>
> Bruce Rennie
>
>
> On 22/08/16 06:28, Jeffery, Clint (jeffe...@uidaho.edu
> <mailto:jeffe...@uidaho.edu>) wrote:
> >
> > For what its worth, I too worried that I would no longer hear what's
> > going on in various discussion groups that are not on the
> unicon-group
> > list. But then again, not every discussion is appropriate for the
> > whole list. So, while it will probably be easy to solve the
> forwarding
> > problem from a technical standpoint, I think we should only do
> it for
> > the General Discussion, and not for all the other topics. For other
> > unicon discussion topics on source forge, we should allow interested
> > parties to subscribe themselves.
> >
> >
> > Cheers,
> >
> > Clint
> >
> >
> 
> > *From:* Jafar Al-Gharaibeh  <mailto:to.ja...@gmail.com>>
> > *Sent:* Sunday, August 21, 2016 9:20:08 AM
> > *To:* Bruce & Breeanna Rennie;
> unicon-group@lists.sourceforge.net
> <mailto:unicon-group@lists.sourceforge.net>
> > *Subject:* Re: [Unicon-group] Unicon Forums
> >
> > Bruce,
> >
> > I have tried to forward General Discussions posts to the mailing
> list
> > and I got this:
> > --
> > Your mail to 'Unicon-group' with the subject
> > [unicon:discussion] General Discussion Routed to The Mailing List
> > Is being held until the list moderator can review it for approval.
> > The reason it is being held:
> > Post by non-member to a members-only list
> > Either the message will get posted to the list, or you will receive
> > notification of the moderator's decision.
> > -
> >
> > Read my original post at:
> >
> https://sourceforge.net/p/unicon/discussion/general/thread/ff90d6cc/#0c35
> >
> > I would say this would be an administration hassle unless there
> is an
> > easier way to do it. I will go ahead and turn it off.
> >
> > Regards,
> > Jafar
> >
> >
> > On Sat, Aug 20, 2016 at 6:04 PM Bruce & Breeanna Rennie
> > mailto:bren...@dcsi.net.au>
> <mailto:bren...@dcsi.net.au <mailto:bren...@dcsi.net.au>>> wrote:
> >
> > Good morning Jafar,
> >
> > Have tried to subscribe to various forums and nothing (as
> yet). Noting
> > seems to stick when I have logged in and set the
> notifications. Is
> > there
> > any way to get the forum posts to just go to the Unicon-group?
> >
> > regards
> >
> > Bruce Rennie
> >
> >
> > On 21/08/16 03:17, Jafar Al-Gharaibeh wrote:
> > > Hi,
> > >
> > > We have been using the mailing list for most Unicon
> discussions
> > for a
> > >

Re: [Unicon-group] Unicon Forums

2016-08-21 Thread Jeffery, Clint (jeffe...@uidaho.edu)
For what its worth, I too worried that I would no longer hear what's going on 
in various discussion groups that are not on the unicon-group list. But then 
again, not every discussion is appropriate for the whole list. So, while it 
will probably be easy to solve the forwarding problem from a technical 
standpoint, I think we should only do it for the General Discussion, and not 
for all the other topics. For other unicon discussion topics on source forge, 
we should allow interested parties to subscribe themselves.


Cheers,

Clint


From: Jafar Al-Gharaibeh 
Sent: Sunday, August 21, 2016 9:20:08 AM
To: Bruce & Breeanna Rennie; unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Unicon Forums


Bruce,

I have tried to forward General Discussions posts to the mailing list and I got 
this:
--
Your mail to 'Unicon-group' with the subject
[unicon:discussion] General Discussion Routed to The Mailing List
Is being held until the list moderator can review it for approval.
The reason it is being held:
Post by non-member to a members-only list
Either the message will get posted to the list, or you will receive
notification of the moderator's decision.
-

Read my original post at:  
https://sourceforge.net/p/unicon/discussion/general/thread/ff90d6cc/#0c35

I would say this would be an administration hassle unless there is an easier 
way to do it. I will go ahead and turn it off.

Regards,
Jafar


On Sat, Aug 20, 2016 at 6:04 PM Bruce & Breeanna Rennie 
mailto:bren...@dcsi.net.au>> wrote:
Good morning Jafar,

Have tried to subscribe to various forums and nothing (as yet). Noting
seems to stick when I have logged in and set the notifications. Is there
any way to get the forum posts to just go to the Unicon-group?

regards

Bruce Rennie


On 21/08/16 03:17, Jafar Al-Gharaibeh wrote:
> Hi,
>
> We have been using the mailing list for most Unicon discussions for a
> long time, but as some of you may know we recently also added a few
> discussion forums  at sourceforge at, please join the conversation there,
>
> https://sourceforge.net/p/unicon/discussion/
>
> You can choose to subscribe to any forum to get email updates just
> like the mailing list. It is more organized/structured than the
> mailing list.
>
> Thanks for Brian Tiffin for kickstarting this move!
>
> Cheers,
> Jafar
>
> --
>
> -- Sent From My Smartphone
>
>
>
> --
>
>
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group


--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--

-- Sent From My Smartphone
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unable to build from Alpha 13.0

2016-08-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Steve,


Thanks, the extra details are necessary for us to figure out why your Unicon 
isn't building OK.  To be honest, debugging at this level of detail is probably 
not that entertaining and we should take it off of unicon-group. However, if we 
learn something of general interest, we can post back about it.


Your next step is to tell me exactly what libssl you got, from where or using 
what command, so I can try to apply the same packages to my Ubuntu machine. 
Your best hope for a quick resolution is for either myself or Jafar to be able 
to reproduce your trouble.


I also will want to know the value of your LD_LIBRARY_PATH environment variable 
if any, and the output of "nm" for whatever version of libssl you are linking 
in with the -lssl command. When autoconf finds a viable libssl and tells the 
make command to link it in, the same link that causes the test to pass would 
normally cause the symbols that are undefined to be included in your iconx, so 
it is a puzzler.


Cheers,

Clint


From: Steve Graham 
Sent: Wednesday, August 10, 2016 2:10 PM
To: Jeffery, Clint (jeffe...@uidaho.edu); Unicon Group
Subject: Re: [Unicon-group] Unable to build from Alpha 13.0

Here is the log from my attempt at building Unicon:

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. http://sdm.link/zohodev2dev___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] HTTPS and FTP protocols

2016-08-04 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi David,


If you want to contribute a more general ssl/TLS layer, we'd love to see it. A 
proposed new feature would have to (a) be uniconish, i.e. be an elegant 
addition that is consistent with the language, and (b) be implemented well and 
portably. Design discussions on something like this would be welcome in the 
unicon-ldif mailing list. Ultimately, code talks louder than words, but with a 
sufficiently detailed design and a sponsor, students can be hired to accomplish 
much at a bargain price. I am always interested in new sponsors.


The current networking capabilities of the language consist of the lower-level 
TCP/UDP networking capabilities reflected in open() modes "n", "nu", "na", and 
"nl", and the higher level messaging

facilities provided in mode "m".  Adding https (libssl) support was a minimal 
extension of the existing http support in the messaging facilities. It is 
client-oriented, so one particular opportunity is for someone to invent 
higher-level server support.


Cheers,

Clint


From: David.gamey 
Sent: Thursday, August 4, 2016 1:11:54 PM
To: p...@firefly.nlm.nih.gov; Sergey Logichev
Cc: Unicon group
Subject: Re: [Unicon-group] HTTPS and FTP protocols

Hi all,

I'd started to look at this several years back, but my interest was in a more 
general ssl/TLS layer, with client and server, with the ability to specify 
Security parameters like cipher suites and protocols.  My thinking was that 
it's a lot to go through just for http when there are so many other 
applications.

Not sure to what extent this is possible with what's already in.

It could be useful.

David

Sent from my BlackBerry 10 smartphone on the Rogers network.
  Original Message
From: p...@firefly.nlm.nih.gov
Sent: Thursday, August 4, 2016 3:54 PM
To: Sergey Logichev
Cc: Unicon group
Subject: Re: [Unicon-group] HTTPS and FTP protocols

I believe https was also working, but you'd need instructions on how to
use it. It stopped working for a while. I don't know the current status.

--Phillip

On Wed, 3 Aug 2016, Sergey Logichev wrote:

> Yes, I mean exactly https:// and ftp://
>
> 03.08.2016, 07:28, "Jafar Al-Gharaibeh" :
> Do you mean HTTPS? Because HTTP is supported.--Jafar
>
> On Tue, Aug 2, 2016, 10:53 PM Sergey Logichev  wrote:
> Hello!
> I would appreciate if someone could clarify why HTTP and FTP protocols were
> not implemented in Unicon networking?
> Maybe it is planned for future?
> Thanks,
> Sergey
>
> --
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>
> --
>
> -- Sent From My Smartphone
>
>
>

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] HTTPS and FTP protocols

2016-08-03 Thread Jeffery, Clint (jeffe...@uidaho.edu)
A little googling suggests that ssh-keygen can be used to produce 
ssl-compatible keys, but I am not an encryption expert to give you the 
blow-by-blow instructions. I believe the file formats are different by default, 
and may be stored in different directories by default.

To test whether our Unicon sources found libssl libraries OK and were 
configured to be https:// ready you would check src/h/auto.h to see if a 
#define HAVE_LIBSSL 1 is uncommented. The code then expects either:

* an SSL_CERT_FILE or SSL_CERT_DIR environment variable, or
* an openssl command on the path, along with grep

in order to figure out where to find SSL encryption keys.  More setup than I 
would like to accept in a finished Unicon feature.

From: Sergey Logichev 
Sent: Tuesday, August 2, 2016 11:26:54 PM
To: Jeffery, Clint (jeffe...@uidaho.edu); Jafar Al-Gharaibeh; Unicon group
Subject: Re: [Unicon-group] HTTPS and FTP protocols

Clint,

If I properly understand you the https (ssl) support is already embedded by 
default? I prefer to build Unicon myself so to add some libraries or 
definitions is not a problem too.
As for ssl keys - is it possible to generate their with help of ssh-keygen, for 
example? I use git portable client on my Windows computer. SSL key by default 
shall be just placed to user's home directory.
Could you clarify this? I would like to check https:// with Unicon.
Sergey

03.08.2016, 09:14, "Jeffery, Clint (jeffe...@uidaho.edu)" :

http has been in the messaging facilities since 2001 or earlier.  It is 
straightforward. The code was by Steve Lumos and we have improved it a bit 
since then.



https preliminary support works, but is not yet mature.  I have not adequately 
documented or publicized it, because I am not satisfied with the usability yet.

You could say that I consider it not finished. Here are a couple of the issues.



https depends on a particular API provided by a C library, libssl. If you have 
libssl headers and libraries, https may be built into your Unicon. I am not 
sure how universal libssl is. If Jafar says Windows and Mac builds HAVE_SSL, 
maybe it meets a minimal portability standard to be a general Unicon feature. 
We should add a feature for SSL to &features.  &features is getting too long, 
by the way, and checking for a feature needs to be re-architected.



https uses encryption keys which are not yet very well packaged/abstracted

in Unicon binary distributions.  If you do have Unicon binaries with https,

there may yet be some setup required for it to work.  Like for example,

Unicon will want to know where your suite of encryption keys is. So far, the

code probably works on 1-2 operating systems with 1-2 popular web browsers'

keys. It needs to be made more portable.


cheers,

Clint


From: Jafar Al-Gharaibeh mailto:to.ja...@gmail.com>>
Sent: Tuesday, August 2, 2016 9:57:07 PM
To: Sergey Logichev; Unicon group
Subject: Re: [Unicon-group] HTTPS and FTP protocols


Not too long ago, Clint added preliminary support for SSL, which should pave 
the way for https. Not sure how far along he got it or if he managed to get 
https to work in Unicon. As to why we don't have https, ftp or several other 
protocols for that matter, the answer is the scarcity of contributors. The 
Unicon Project is underfunded and understaffed. We want more people to get 
involved in the development :-)

Cheers,
Jafar

On Tue, Aug 2, 2016 at 11:36 PM Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Yes, I mean exactly https:// and ftp://

03.08.2016, 07:28, "Jafar Al-Gharaibeh" 
mailto:to.ja...@gmail.com>>:
Do you mean HTTPS? Because HTTP is supported.
--Jafar

On Tue, Aug 2, 2016, 10:53 PM Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Hello!
I would appreciate if someone could clarify why HTTP and FTP protocols were not 
implemented in Unicon networking?
Maybe it is planned for future?
Thanks,
Sergey

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net<mailto:Unicon-group@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/unicon-group
--

-- Sent From My Smartphone

--

-- Sent From My Smartphone
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] HTTPS and FTP protocols

2016-08-02 Thread Jeffery, Clint (jeffe...@uidaho.edu)
http has been in the messaging facilities since 2001 or earlier.  It is 
straightforward. The code was by Steve Lumos and we have improved it a bit 
since then.


https preliminary support works, but is not yet mature.  I have not adequately 
documented or publicized it, because I am not satisfied with the usability yet.

You could say that I consider it not finished. Here are a couple of the issues.


https depends on a particular API provided by a C library, libssl. If you have 
libssl headers and libraries, https may be built into your Unicon. I am not 
sure how universal libssl is. If Jafar says Windows and Mac builds HAVE_SSL, 
maybe it meets a minimal portability standard to be a general Unicon feature. 
We should add a feature for SSL to &features.  &features is getting too long, 
by the way, and checking for a feature needs to be re-architected.


https uses encryption keys which are not yet very well packaged/abstracted

in Unicon binary distributions.  If you do have Unicon binaries with https,

there may yet be some setup required for it to work.  Like for example,

Unicon will want to know where your suite of encryption keys is. So far, the

code probably works on 1-2 operating systems with 1-2 popular web browsers'

keys. It needs to be made more portable.


cheers,

Clint


From: Jafar Al-Gharaibeh 
Sent: Tuesday, August 2, 2016 9:57:07 PM
To: Sergey Logichev; Unicon group
Subject: Re: [Unicon-group] HTTPS and FTP protocols


Not too long ago, Clint added preliminary support for SSL, which should pave 
the way for https. Not sure how far along he got it or if he managed to get 
https to work in Unicon. As to why we don't have https, ftp or several other 
protocols for that matter, the answer is the scarcity of contributors. The 
Unicon Project is underfunded and understaffed. We want more people to get 
involved in the development :-)

Cheers,
Jafar

On Tue, Aug 2, 2016 at 11:36 PM Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Yes, I mean exactly https:// and ftp://

03.08.2016, 07:28, "Jafar Al-Gharaibeh" 
mailto:to.ja...@gmail.com>>:
Do you mean HTTPS? Because HTTP is supported.
--Jafar

On Tue, Aug 2, 2016, 10:53 PM Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Hello!
I would appreciate if someone could clarify why HTTP and FTP protocols were not 
implemented in Unicon networking?
Maybe it is planned for future?
Thanks,
Sergey

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--

-- Sent From My Smartphone

--

-- Sent From My Smartphone
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unicon around the world

2016-07-31 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Nice picture! Thanks to everyone who has told another programmer about Unicon!

Clint


 Original message 
From: Sergey Logichev 
Date: 07/31/2016 5:19 AM (GMT-07:00)
To: btiffin , unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Unicon around the world

Sorry, I gave a wrong link to a picture. The proper link is 
https://yadi.sk/i/v_1fyoxttnD8S

31.07.2016, 15:10, "Sergey Logichev" :
Hello, all!

I hope this visualisation will be more demonstrative 
https://yadi.sk/d/SzM5-gwBtnCJK.
Provided with help of following tiny xmarkup script (the main part of it is a 
copy/paste from original json data):

[options]
graphics=true
[macros]
procedure initialize
data := [["United States", 2488], ["Spain", 671], ["Germany", 400], ["Russia", 
331], ["China", 223], ["United Kingdom", 190], ["India", 158], ["France", 154], 
["Canada", 130], ["Netherlands", 124], ["Italy", 98], ["Poland", 95], 
["Australia", 92], ["Philippines", 90], ["Japan", 84], ["Ukraine", 52], 
["Brazil", 43], ["Israel", 38], ["Indonesia", 37], ["Hungary", 34], ["Mexico", 
31], ["Ireland", 28], ["Croatia", 28], ["Korea", 25], ["Sweden", 25], 
["Venezuela", 25], ["Argentina", 24], ["Romania", 21], ["New Zealand", 19], 
["Europe", 19], ["Thailand", 17], ["Denmark", 16], ["Anonymous", 16], ["Chile", 
15], ["Latvia", 15], ["Turkey", 13], ["Malaysia", 13], ["Taiwan", 13], 
["Satellite Provider", 12], ["Bangladesh", 12], ["Nicaragua", 12], ["Serbia", 
12], ["Belarus", 11], ["Bulgaria", 11], ["Belgium", 11], ["Czech Republic", 
10], ["Singapore", 10], ["Hong Kong", 10], ["South Africa", 9], ["Austria", 9], 
["Switzerland", 9], ["Sri Lanka", 9], ["Viet Nam", 8], ["Nigeria", 8], 
["Lithuania", 7], ["Ecuador", 7], ["Lao People's Democratic Republic", 7], 
["Morocco", 6], ["Greece", 6], ["Slovakia", 5], ["Norway", 5], ["Iceland", 5], 
["Jordan", 5], ["Finland", 4], ["Portugal", 4], ["Puerto Rico", 4], ["Estonia", 
4], ["Kazakhstan", 4], ["Yemen", 3], ["United Arab Emirates", 3], ["Kenya", 3], 
["Peru", 3], ["Algeria", 3], ["Egypt", 3], ["Guadeloupe", 3], ["Cameroon", 2], 
["Bahrain", 2], ["Saudi Arabia", 2], ["Slovenia", 2], ["Ivory Coast", 2], 
["Pakistan", 2], ["Malawi", 2], ["Armenia", 2], ["Mauritius", 2], ["Andorra", 
2], ["Uruguay", 2], ["Lebanon", 2], ["Turkmenistan", 1], ["Ethiopia", 1], 
["Bolivia", 1], ["Tanzania", 1], ["Azerbaijan", 1], ["Cyprus", 1], 
["Asia/Pacific", 1], ["Moldova", 1], ["Colombia", 1], ["Reunion", 1], ["Nepal", 
1], ["Kyrgyzstan", 1], ["Trinidad and Tobago", 1], ["Tunisia", 1], ["Namibia", 
1]]
PlotWords(data,"Downloads of Unicon from SourceForge broken down by country")
end

Enjoy!
Sergey

P.S. xmarkup is Icon/Unicon based text-transformation utility at 
sourceforge.net/projects/xmarkip

31.07.2016, 13:44, "btiffin" mailto:btif...@vivaldi.net>>:

If you were ever curious, and this is a very soft statistic, single
point source, yada yada, bob loblaw.

Downloads of Unicon from SourceForge, broken down by country.

prompt$ curl
"https://sourceforge.net/projects/unicon/files/stats/json?start_date=2000-09-01&end_date=2016-07-31";
| jq .countries

[
   [
 "United States",
 2488
   ],
   [
 "Spain",
 671
   ],
   [
 "Germany",
 400
   ],
   [
 "Russia",
 331
   ],
   [
 "China",
 223
   ],
   [
 "United Kingdom",
 190
   ],
   [
 "India",
 158
   ],
   [
 "France",
 154
   ],
   [
 "Canada",
 130
   ],
   [
 "Netherlands",
 124
   ],
   [
 "Italy",
 98
   ],


And a fairly smooth spread after that, that's just the top 10 out of 101
entries (some few being things like Satellite Provider).

Have some work to do with advertising here in Canada it seems; we should
be at least at the 240 mark, to match the 1/10th of the U.S. population
ratio. Time to get busy. :-)

Cheers,
Brian

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

,

--

,

___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Use of . and $ in object field references

2016-07-24 Thread Jeffery, Clint (jeffe...@uidaho.edu)

Hi Bruce,


$ was used in Unicon's ancestor Idol, but I tried to do away with $ entirely in 
Unicon since the period is more standard syntax. You might almost say that $ is 
kept only for Idol-backwards compatibility. At one point after we had mostly 
switched to the period operator, the dollar was still required for 
object$classname.methodname overrides of inheritance.  I kind of doubt that it 
is still so required, but I cannot remember off-hand.


Cheers,

Clint


From: Bruce & Breeanna Rennie 
Sent: Sunday, July 24, 2016 5:46:27 AM
To: Unicon group
Subject: [Unicon-group] Use of . and $ in object field references

Good evening to all this beautiful night,

I am putting this question to the group and not posing this a private
question for Clinton so that there is a public record of both question
and answer for others as well.

The question is

Is there any need now for using $ in referencing a superclass over the
use of . In referencing the same superclass?

 From the current implementation and from the usage within the Unicon
distribution, it appears that $ is not actually needed.

Is my understanding actually correct or am I missing some subtle effect
of the use of $?

regards

Bruce Rennie

--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
Unicon-group Info Page - 
SourceForge
lists.sourceforge.net
To see the collection of prior postings to the list, visit the Unicon-group 
Archives. Using Unicon-group: To post a message to all the list members ...



--
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Soft thread changes

2016-04-30 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Thanks Jafar for these very interesting comparisons.  Robert would know better 
than I, but it may well be that when he first told me of his plans to do 
stackless co-expressions, I said something stupid like: my monitoring 
facilities are built using the current co-expression switch and Unicon will 
never adopt a different co-expression switch unless the monitoring facilities 
are supported.  So he went off and invented Object Icon. Then again, I may be 
misremembering and inventing that anecdote. [😊]   In any case, if he has 27% 
faster co-expressions that is a great technical accomplishment, worthy of 
Robert's other great creations. UDB and other monitors remain the world's 
biggest customer of co-expressions, so I wish monitors ran on his 27% faster 
co-expressions. And I am not sure I'd give up any normal execution speed for 
faster co-expressions, since most programs do not use co-expressions.  But I 
recognize that these numbers are not authoritative.


Cheers,

Clint


From: Jafar Al-Gharaibeh 
Sent: Saturday, April 30, 2016 11:12:28 AM
To: Bruce & Breeanna Rennie
Cc: Unicon
Subject: Re: [Unicon-group] Soft thread changes

My previous email decided to "fly" before I was done :)  here is the 
results:

Objecticon:  9.7 seconds
Unicon:12.3 seconds.


The context switch is 27% faster in Objecticon, I actually expected a lot 
bigger difference.
To  get a feel of the interpreter loop performance in both languages I ran this 
program:


procedure main()

every  1 to 2

end

Objecticon:  17.0 seconds
Unicon:11.9 seconds.

Unicon is 43% faster. These were quick tests, so number should not be taken 
literally, I just wanted to get a quick reference point.

Cheers,
Jafar








On Sat, Apr 30, 2016 at 12:58 PM, Jafar Al-Gharaibeh 
mailto:to.ja...@gmail.com>> wrote:
Here are some information about Objecticon co-expressions including difference 
in semantics compared with Icon/Unicon:
http://objecticon.sourceforge.net/Coexpressions.html

And here is another link with a brief discussion about the implementation of 
co-expressions:
http://objecticon.sourceforge.net/ImplementationNotes.html


I'm not familiar with ObjectIcon implementation to say much about it, but from 
the discussion in the above link, co-expressions seems to be a lot cheaper in 
term of memory requirement (no stack), and in context switch performance (no 
recursive call to the interpreter).  Co-expression stack in Unicon is 
configurable so you can reduce the memory requirement if the application uses a 
lot of "little" co-expressions, but still a stack is needed.

On the performance front of context switch, while a recursive call to the 
interpreter is needed, it only takes place once at the first activation so it 
is not really a problem in this case. There is however some state that needs to 
be  saved/restored, both c state and interpreter state. With native coswitch in 
Unicon that we have in all common platforms now (recently added Mac OS and ARM 
Linux) the cosiwtch is "fast". I decided to test how "slow" Unicon's context 
switch compared to the stackless/non-recursive implementation of co-expressions 
in Object Icon. I built both on my Raspberry Pi (No graphics in both, and 
concurrency turned off in the case of Unicon). Here is the program that I 
tested:


procedure main()

c := create 1 to 2000

while @c

end

















On Fri, Apr 29, 2016 at 8:01 PM, Bruce & Breeanna Rennie 
mailto:bren...@dcsi.net.au>> wrote:
Good morning Jay and Steve,

It is a personal project to understand the difference between Unicon and
ObjectIcon. My reasons are related to the co-expression implementation
differences and the fact that ObjectIcon is a no recursive interpreter
(unlike Unicon). My original reason for looking at both is that I am
looking at a reimplementation of the icon runtime as a indirect threaded
form. I have been puzzling about this for many years but, it has only
been in recent times that I have the extra time to look at these things.

My investigations should, at this point, have no bearing on what Jafar
is doing. As far as I can tell, I am the only one looking at the
implementation differences. As I am NOT a c programmer, I am also having
to look at the implementation as a novice. I have always found c as
being a hodge podge in terms of a language. But that is really neither
here nor there.

At this point, I can't give any real comment on either implementation
with respect to threads, co-expressions and efficiency.

regards

Bruce Rennie

On 30/04/16 02:37, Jay Hammond wrote:
> Robert Parlett developed Objecticon.
>
> https://rosettacode.org/wiki/Category:ObjectIcon
>
> and
>
> http://objecticon.sourceforge.net/
>
> say a bit about it.
>
> From a long time ago maybe 8 years, I seem to remember there being
> discussion in this group about a different co-expression implementation
> in Objecticon being more efficient at threads, co-expressions than the
> 

Re: [Unicon-group] Code coverage assessment (for testing)

2016-03-03 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Art,

I'd recommend the monitoring facilities for a code coverage tool and would be 
very interested in the result.  udb and uprof are written using them and might 
provide ideas. The 1993 TR (my dissertation) is subsumed by a Springer book 
which is available cheap on amazon and may be of interest. Several kinds of 
code coverage can be defined, of course, and goal-directed evaluation might 
introduce new wrinkles to the definition of coverage.

Since the TR, the monitoring facilities have been extended a bit, and made a 
standard/built-in part of the Unicon distribution, although some newer 
facilities (e.g. concurrency) do not support them properly yet.

If anyone knows of a better way to estimate coverage for Unicon programs, I 
think that would be of general interest and useful to share.

Cheers,
Clint

From: Art Eschenlauer 
Sent: Thursday, March 3, 2016 3:35 PM
To: unicon-group@lists.sourceforge.net
Subject: [Unicon-group] Code coverage assessment (for testing)

It seems to me that I could build a code-coverage assessment tool based
on section 6.2 of
   A Framework for Monitoring Program Execution
   

However, I am wondering if there are better/newer approaches to measure
code coverage when testing Icon/Unicon programs.

Thank you,
- Art

--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Fun with Threads

2016-02-22 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Thanks.  We definitely want more library support for thread pools and the like, 
and we pretty desperately need to collect small concrete examples that actually 
do something, and write them up in our documentation if we want to encourage 
more use of threads as a mainstream language feature.

Cheers,
Clint



 Original message 
From: Don Ward 
Date: 02/22/2016 2:22 PM (GMT-08:00)
To: Steve Wampler 
Cc: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Fun with Threads

It was a “simple” thread pool if I recall.  I think I said to Jafar at the time 
that if he wanted to put it into the library then that was fine by me.

Regards

Don

> On 22 Feb 2016, at 22:01, Steve Wampler  wrote:
>
> On 02/22/2016 12:56 PM, Jafar Al-Gharaibeh wrote:
> ...
>> while 0 <= (n-:= 1) do { put(Workforce, id := ( thread worker(<<@)) ); id 
>> @>> id }
>
> Am I reading this correctly that the argument passed to each worker is its 
> enclosing thread?  [id @>> id]
> worker must be really interesting!
>
> --
> Steve Wampler -- swamp...@noao.edu
> The gods that smiled on your birth are now laughing out loud.
>
> --
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group


--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] new release and windows binaries eta?

2016-02-08 Thread Jeffery, Clint (jeffe...@uidaho.edu)
I'll let Jafar answer regarding Windows binaries.


There are multiple new additions to the language and its implementation in 
various stages of progress.  Unicon's Version # stands at 12.3 and it will tick 
over to 13 when we are satisfied that the pattern facilities are adequately 
functional and tested.  I know of at least one major test case for which a fix 
of some kind is likely needed.  Jafar may want one or more other language 
additions to show up before we call it Version 13, although I think he is 
already well along on what should be Version 14. [😊]

Cheers,
Clint

From: David Gamey 
Subject: [Unicon-group] new release and windows binaries eta?

I know there is an update in progress that will result in new binaries.

Not urgent but is the timeline days, weeks, months?

--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] getting error message fatal: can't read spec for class Error : question raised for discussion

2016-01-25 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

The uniclass.{dir,pag} gdbm files that are used to implement inheritance (and 
packages) have their pros and cons. Obviously deleting the uniclass.{dir,pag} 
and possibly all the .u files in a directory and recompiling from scratch works 
whenever something goes wrong with the gdbm files, but I agree it seems a bit 
drastic.

If I understand your description right, your classobject.icn file needed to be 
recompiled because it was previously compiled to depend on Error which was 
renamed to ErrorSystem.  If a "make" or similar system has a complete 
description of dependencies, it is rare to actually need to delete uniclass.* 
and recompile from scratch, but it is easy to omit dependencies when they are 
due to inheritance. The issue is important enough that there is a unidep 
program in the Unicon distribution to analyze and generate dependencies, 
although I am not sure it is being maintained.

To sum up: I am open to proposals to reduce inheritance-related dependency 
problems and improve the error messages. But, I am conservative about 
automatically recompiling things whenever we feel like it might be good to do 
so. Perhaps instead of dying with a rude "fatal:..." error message, the 
compiler should store time stamps with entries in the uniclass.* files, and if 
they are out of date, say something more helpful like: "hey, maybe you need to 
recompile classobject.icn"

My assessment might be missing crucial aspects of your particular setup, so 
feel free to follow up on this.

Cheers,
Clint


From: Bruce & Breeanna Rennie 
Sent: Monday, January 25, 2016 5:37 AM
Subject: [Unicon-group] getting error message fatal: can't read spec for class 
Error : question raised for discussion

I am trying to compile my UTF8 classes and I am getting the following
error message

fatal: can't read spec for class Error

The following is the preamble to my question (as I have worked out what
was wrong and make the appropriate process changes.)

The full display is

 unicon -u -c utf8
Parsing utf8.icn: ..  inherits ClassClass from
/home/bruce/unicon/local/classobject.icn
  inherits ClassObject from /home/bruce/unicon/local/classobject.icn
fatal: can't read spec for class Error


The IPATH is as follows

echo $IPATH
/home/bruce/unicon/ipl/lib /home/bruce/unicon/ipl /home/bruce/unicon/uni
/home/bruce/unicon/uni/ide /home/bruce/unicon/uni/3d
/home/bruce/unicon/uni/gui /home/bruce/unicon/uni/gui/ivib
/home/bruce/unicon/uni/ide /home/bruce/unicon/uni/lib
/home/bruce/unicon/uni/parser /home/bruce/unicon/uni/udb
/home/bruce/unicon/uni/udb/dta /home/bruce/unicon/uni/udb/lib
/home/bruce/unicon/uni/unicon /home/bruce/unicon/uni/unidep
/home/bruce/unicon/uni/unidoc /home/bruce/unicon/uni/unilib
/home/bruce/unicon/uni/util /home/bruce/unicon/uni/xml
/home/bruce/unicon/local

Within the file classobject.icn, I have the following link statements

link ximage
link equiv
link numbers

link errorsystem

and class declarations

class ClassObject : ErrorSystem()
class ClassClass : ClassObject()



Within the file errorsystem.icn, I have the following class declaration

class ErrorSystem(__DebugMode,  __ErrorOutFile)

Within the file utf8.icn, I have the following link statements

link classobject
link ximage
link hexcvt
link trace

and class declarations

class UTF8 : ClassClass(__UTF8SizeTable, __UTF8LimitTable, __UTF8BOM,
__UTF8CountTable, __UTF8InvalidChar, __UTF8DebugPrint)
class __UTF8Object : ClassObject(__data, __asciionly)
class UTF8Set : ClassClass()
class __UTF8SetObject : ClassObject(__data, __cset, __2bytedata,
__3bytedata, __4bytedata)

the utf8.icn file is located in the directory

/home/bruce/unicon/src/unicon projects/ibpag3

End of Preamble.

My question relates to the use of the uniclass.dir and uniclass.pag
files. I changed the name of the class ErrorSystem from Error (to avoid
conflicts with the current Error class in the unicon library). When I
delete the uniclass.dir and uniclass.pag files in the current
compilation directory, the error message disappears.

My question is - Should the uniclass.pag and uniclass.dir files be
updated by the current class hierarchy instead of using the class
hierarchy stored in the uniclass database files? Should we consider this
to be a bug or should we be documenting that the uniclass files need to
be deleted when changing class hierarchies?

I have been caught by this on a number of occasions (and it usually
takes me a couple of goes to remember to delete the uniclass files in
the current working directory). This also means that I have to recompile
all class source code files within the directory to get the uniclass
files into the correct state.

regards

Bruce Rennie
--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corre

Re: [Unicon-group] bug in member(a,x)?

2016-01-21 Thread Jeffery, Clint (jeffe...@uidaho.edu)
This bug reproduces nicely for me, It was a result of an undiagnosed CvtFail 
return value from cvpos() being used in member() as if it were an actual value.
Thanks much for the report.  I think I have committed a fix.

Clint


From: Steve Wampler 
Sent: Thursday, January 21, 2016 1:10 PM
To: Unicon
Subject: [Unicon-group] bug in member(a,x)?

It looks as though member(a,x) has a bug where a is a list of size 0.
(It appears to work fine when a is a set.)

The following program:

procedure main()
test([1,2,3])
write()
test([])
end

procedure test(a)
if member(a,1) then write("member(a,1) succeeded")
   else write("member(a,1) failed")
if member(a,4) then write("member(a,4) succeeded")
   else write("member(a,4) failed")
if 1 === !athen write("1 == !a succeeded")
   else write("1 == !a failed")
if 4 === !athen write("4 == !a succeeded")
   else write("4 == !a failed")
end
=

produces under Unicon 12.2 (linux):
=
member(a,1) succeeded
member(a,4) failed
1 == !a succeeded
4 == !a failed

member(a,1) failed
member(a,4) succeeded<- Wrong
1 == !a failed
4 == !a failed
=

Is this a known problem?
--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.

--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Question relating to the semantics of !x

2016-01-18 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Sets and tables are implemented in the Icon/Unicon VM using open hash tables. 
You effectively have an array of linked lists, and ! just walks down each 
linked list, starting with bucket 0. The reason order is undefined is that 
hashing generally is supposed to toss them into buckets fairly randomly.  The 
reason ! does not guarantee to generate newly inserted elements if it is in the 
middle of generating all of them is that newly inserted elements are as likely 
to be placed in an earlier bucket as they are in a bucket that is not yet 
visited.

Bruce, you will indeed need to devise something more than just !, such as a 
scheme that marks elements that have been generated, and is smart enough to 
restart the generation of elements if the size is changed, skipping elements 
that have already been generated. That's not too bad, but sorry that ! is not 
magically smart enough to do it all for you.

Cheers,
Clint


From: Sergey Logichev 
I need also to mention about ! operator following. The Unicon Programming 
Language book describes that "Set and table elements are generated in an 
undefined order." So, the order of results for "every !set" is undefined. It 
should be taken into account.

Sergey

18.01.2016, 08:49, "Bruce & Breeanna Rennie" :

Thank you, you have answered my question. The fact that ! is undefined
if the structure is modified during generation explains why there is a
difference between the two versions.

I have a small program that I am writing in which I wanted to add
elements to a set during the loop and have them appear in the generation
of the elements via !. However, I will now look at an alternative process.

regards

Bruce Rennie


On 18/01/16 14:13, Jeffery, Clint 
(jeffe...@uidaho.edu<mailto:jeffe...@uidaho.edu>) wrote:

 Hi Bruce,

 Behavior of ! is undefined if the structure is modified during
 generation. Given that, what questions would you want to pose?

 Cheers, Clint


  Original message 
 From: Bruce & Breeanna Rennie mailto:bren...@dcsi.net.au>>
 Date: 01/17/2016 5:13 PM (GMT-08:00)
 To: Unicon group 
mailto:unicon-group@lists.sourceforge.net>>
 Subject: [Unicon-group] Question relating to the semantics of every
 ... do

 Good afternoon all,

 I have a question relating to the semantics of every do

 what would be the expected sequence of results for x in the following
 program in terms of what

 procedure main()
 local s := set([1, 2, 3]), x
 every x := !s do {
 write("x: ", x)
 write("s before insert: ", ximage(s))
 insert(s, x < 30 & x + 2)
 write("s after insert: ", ximage(s))
 }
 end

 link ximage

 is the value of s in !s evaluated only once at the start of the loop
 even though a value is inserted into s during the loop? I am getting
 somewhat inconsistent results as the following version gives a different
 number of times around loop.

 procedure main()
 local s := set([1, 2, 3]), x
 every x := !s do {
 if *s > 10 then {
 stop("finished")
 }
 write("x: ", x)
 write("s before insert: ", ximage(s))
 insert(s, x + 10)
 write("s after insert: ", ximage(s))
 }
 end

 link ximage


 regards

 Bruce Rennie

 --
 Site24x7 APM Insight: Get Deep Visibility into Application Performance
 APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
 Monitor end-to-end web transactions and take corrective actions now
 Troubleshoot faster and improve end-user experience. Signup Now!
 http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
 ___
 Unicon-group mailing list
 Unicon-group@lists.sourceforge.net<mailto:Unicon-group@lists.sourceforge.net>
 https://lists.sourceforge.net/lists/listinfo/unicon-group


--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net<mailto:Unicon-group@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and impr

Re: [Unicon-group] Question relating to the semantics of every ... do

2016-01-17 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

Behavior of ! is undefined if the structure is modified during generation. 
Given that, what questions would you want to pose?

Cheers, Clint


 Original message 
From: Bruce & Breeanna Rennie 
Date: 01/17/2016 5:13 PM (GMT-08:00)
To: Unicon group 
Subject: [Unicon-group] Question relating to the semantics of every ... do

Good afternoon all,

I have a question relating to the semantics of every do

what would be the expected sequence of results for x in the following
program in terms of what

procedure main()
local s := set([1, 2, 3]), x
every x := !s do {
write("x: ", x)
write("s before insert: ", ximage(s))
insert(s, x < 30 & x + 2)
write("s after insert: ", ximage(s))
}
end

link ximage

is the value of s in !s evaluated only once at the start of the loop
even though a value is inserted into s during the loop? I am getting
somewhat inconsistent results as the following version gives a different
number of times around loop.

procedure main()
local s := set([1, 2, 3]), x
every x := !s do {
if *s > 10 then {
stop("finished")
}
write("x: ", x)
write("s before insert: ", ximage(s))
insert(s, x + 10)
write("s after insert: ", ximage(s))
}
end

link ximage


regards

Bruce Rennie

--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] meaning of local declaration within a class definition

2015-12-24 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Unicon used to have, and explicitly and deliberately removed, a notion of 
"private" for fields and methods.


The notion of "class local" is not necessarily the same as the notion of 
"private".  It might mean a static variable visible to an entire class.


Apparently, there is some syntax for local declarations inside a class, and it 
constitutes an unfinished (and undocumented?) attempt to extend the language.  
As described, it seems at present to allow declarations of additional fields in 
addition to those in the parameter list, which is not very useful but might 
have been someone's personal syntax preference. At this point, unless it 
appears somewhere in the Unicon book, it is not "ratified" and we can either 
finish it up and document it, or delete it.  Thanks Bruce for catching several 
oddities and raising them as questions. I will address them as I get a chance.


Cheers,

Clint


From: Jafar Al-Gharaibeh 
Sent: Wednesday, December 23, 2015 11:10 PM
To: Bruce & Breeanna Rennie; unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] meaning of local declaration within a class 
definition

I agree, if local is an option then it should be visible only within the class. 
What I was trying to say is that local is not an option or at least that is 
what I thought. And yes, we need to address this.

Merry Christmas and Happy Times for you as well,
Jafar


On Thu, Dec 24, 2015, 12:11 AM Bruce & Breeanna Rennie 
mailto:bren...@dcsi.net.au>> wrote:
Good afternoon Jafar,

I don't have a problem with class variables being visible globally, but
local variables do indicate that they are local and not visible outside
of the definition. That is, if a locally declared variable in a
procedure or method is not visible outside of the procedure or method
then one would not expect locally declared variables to be seen outside
a class.

I expect that this needs to have more discussion as to whether the local
declaration should even be available.

Merry Christmas to all and may this time be spent joyfully with family
and friends in safety and peace.

regards

Bruce Rennie


On 24/12/15 13:31, Jafar Al-Gharaibeh wrote:
>
> Mr recollection is that class variables are all visible outside the
> class. No concept of private/protected class members. If there is a
> "weird" behavior we probably should fix it.
>
> --Jafar
>
> On Dec 23, 2015 7:27 PM, "Bruce & Breeanna Rennie"
> mailto:bren...@dcsi.net.au> 
> >> wrote:
>
> On 24/12/15 01:37, Steve Wampler wrote:
> > On 12/23/2015 05:15 AM, Bruce & Breeanna Rennie wrote:
> >> I have a simple question relating to the declaration of local
> variable
> >> within a class definition?
> >>
> >> What is the intent of allowing local variables to be declared
> in class
> >> definitions? From the code generated, it appears to be an
> alternative to
> >> declaring class parameters, in that it adds these declarations
> at the
> >> end of the state record and the procedure definition for the class.
> >>
> >> In addition, declaring locals with the same name as an already
> declared
> >> class parameter is a null action.
> > Cool - I hadn't seen that feature.  Is is possible that the
> visibility
> > is different?  Dlass parameters would be externally visible, but
> perhaps
> > class local variables are only visible within the class?
> >
> > I'll have to find time to update my copy of Unicon and try them out.
> >
> > Happy Holidays,
> > Steve
> I'll confirm that locals are externally visible.
>
> regards
>
> Bruce Rennie
>
> 
> --
> ___
> Unicon-group mailing list
> 
> Unicon-group@lists.sourceforge.net
> 
> >
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>
>
>
> --
>
>
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group


--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Cautions when adding static variables to methods

2015-12-03 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

I have committed a fix to svn that I believe solves your immediate issue.  
Please update unicon/uni/unicon/tree.icn when you get a chance, rebuild unicon, 
and let me know if it helps.

Cheers,
Clint


From: Bruce & Breeanna Rennie 
Subject: [Unicon-group] Cautions when using IVIB generated code and adding 
static variables to methods

First code extract give an error whereas the second (reordered code does not

method DisplaySelectedVersesXML()
local k, i := integer(Starting_Verse.get_string_selection())
local j := integer(Ending_Verse.get_string_selection())
local disp := [], displaystr := ""
local bibleref, databaseref, versenumber, linesep
*static PBREF, PBREFEND, PBQ, PBQEND, TBQVN, TBQVNEND*
initial {

error experienced is that *Starting_Verse* returns the &null value and
*.* then fails

method DisplaySelectedVersesXML()
*static PBREF, PBREFEND, PBQ, PBQEND, TBQVN, TBQVNEND*
local k, i := integer(Starting_Verse.get_string_selection())
local j := integer(Ending_Verse.get_string_selection())
local disp := [], displaystr := ""
local bibleref, databaseref, versenumber, linesep
initial {

change the order of the static declarations and no error is found.

My suggestion at this point is to keep the static declarations before
the locals. At some future point, I will investigate further to see what
code is generated. This is occurring under linux Centos 6.

regards

Bruce Rennie

--
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Cautions when using IVIB generated code and adding static variables to methods

2015-11-30 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

Thanks for the bug report.  It reproduces nicely for me. I am very glad that 
you have a workaround; hopefully a fix will not be especially difficult.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Monday, November 30, 2015 11:03 PM
To: Unicon group
Subject: [Unicon-group] Cautions when using IVIB generated code and adding 
static variables to methods

Good afternoon all,

First code extract give an error whereas the second (reordered code does not

method DisplaySelectedVersesXML()
local k, i := integer(Starting_Verse.get_string_selection())
local j := integer(Ending_Verse.get_string_selection())
local disp := [], displaystr := ""
local bibleref, databaseref, versenumber, linesep
*static PBREF, PBREFEND, PBQ, PBQEND, TBQVN, TBQVNEND*
initial {

error experienced is that *Starting_Verse* returns the &null value and
*.* then fails

method DisplaySelectedVersesXML()
*static PBREF, PBREFEND, PBQ, PBQEND, TBQVN, TBQVNEND*
local k, i := integer(Starting_Verse.get_string_selection())
local j := integer(Ending_Verse.get_string_selection())
local disp := [], displaystr := ""
local bibleref, databaseref, versenumber, linesep
initial {

change the order of the static declarations and no error is found.

My suggestion at this point is to keep the static declarations before
the locals. At some future point, I will investigate further to see what
code is generated. This is occurring under linux Centos 6.

regards

Bruce Rennie





--
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] IVIB application nearly working. A final question (I hope)

2015-11-02 Thread Jeffery, Clint (jeffe...@uidaho.edu)
My initial reaction to this bug report was to reproduce/confirm it.  
WAttrib("selection="|| ...) did not paste nicely into OpenOffice or into Chrome 
on my Linux box.  But it Did paste nicely into a Terminal window, and into an 
Emacs running in its own (GUI, not console) window. So it is a little more 
complicated than just: our selection code has become broken somehow. It is more 
like: many typical modern Linux applications do not grok our classic X11 
selection mechanism and seem to use something else.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Monday, November 2, 2015 3:56 PM
To: Jafar Al-Gharaibeh; Unicon group
Subject: Re: [Unicon-group] IVIB application nearly working. A final question 
(I hope)

Good morning Jafar,

As you have said, you can copy from another application to the Unicon
IDE. However, the reverse is not true, at least in linux. I was able to
copy from gedit to UI but I could not copy from UI to gedit.

A quick follow through the code doesn't appear to show how to get to the
system clipboard. The UI creates a Clipboard object but this appears to
local to the Unicon VM. I will continue looking later today when I am
back from firewood collecting.

regards

Bruce Rennie

On 03/11/15 06:24, Jafar Al-Gharaibeh wrote:
>   You should be able to do "global" clipboard" copy/paste. I quickly
> tried that in the Unicon IDE and I was able to copy paste from another
> application. I will look up the details and let you know when I get a
> chance if you don't get it to work by then.
>
> --Jafar
>
> On Mon, Nov 2, 2015 at 5:13 AM, Bruce & Breeanna Rennie
> mailto:bren...@dcsi.net.au>> wrote:
>
> To all a good evening,
>
> I now have completed coding of my application except for the copy to
> clipboard function.
>
> Looking at UTR6c, there is an example of copy/paste to/from clipboard.
> Notably, it uses the WAttrib("selection=" || longstr) to copy the data
> to the clipboard. One is then able to copy back to elsewhere.
>
> However, I am finding that this is local to the Unicon window
> opened. It
> has no effect on the system clipboard. Is there any known method
> (cross-platform) in which I can copy from my application to another
> application running, e.g. to some editor or application like
> libreoffice?
>
> Or is this going to involve writing a C function to handle this?

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Getting multiple rowsets from SQL in Windows Unicon?

2015-10-30 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Thanks Don and Bruce for answering Keith's question.

Keith, I think everyone's statements here are correct: as far as I know, 
Unicon's ODBC facilities are presently wired for a single result set per open 
ODBC connection, to be obtained by subsequent calls to fetch() after a query, 
and our runtime system code would have to be extended were we desirous of 
supporting multiple queries at once on the same connection.  If you are handy 
with your C coding, you are welcome to implement such an extension, and I 
daresay I could find a student interested in doing it if the price were right.  
I will put it on Unicon's HelpWanted page.

Cheers,
Clint

From: Bruce & Breeanna Rennie 

I think Keith is saying that he sends down a series/sequence of SQL
statements in one transaction/hit/go and gets back the results from all
statements in one transaction but is needing to access the second and
following result sets. So the connection would have multiple results on it.

On 30/10/15 10:58, Don Ward wrote:
> First off; I’m not an expert in SQL and Unicon at all. But doesn’t section 
> "6.5.2 Use multiple connections to nest queries” of the Unicon book give you 
> a hint?  You didn't say your queries were nested, but you did say they were 
> “together”. I’m wondering if you have to use the workaround given in 6.5.2 of 
> one query per connection to achieve what you want.

>> On 29 Oct 2015, at 05:01, kehand...@netzero.net wrote:
>>
>> Hello.  First (since it may help somebody else), I discovered that if you 
>> want to send multiple SQL statements at once to your server over ODBC, you 
>> must set a flag on your ODBC connector (in Windows Control Panel Data 
>> Sources) to "Allow multiple statements".  That solved the biggest problem I 
>> was having.
>>
>> But that made me wonder whether Unicon can deal with multiple result sets. 
>> If I do a couple of select statements together, I get the first result set, 
>> but I couldn't find anything in the Unicon book or in searching the mailing 
>> list archives.
>>
>> So this isn't cramping my style at the time, but it would be great if there 
>> were a command to go to the next result set. I'm hoping I just haven't found 
>> it.
>>
>> Thanks
>>
>> -Keith Handley
>>
>> 
>> What's your flood risk?
>> Knowing your flood risk and being prepared can help keep your family safe 
>> and reduce potential damages.
>> http://thirdpartyoffers.netzero.net/TGL3241/5631a882b0bca28826746st03duc
>> --
>> ___
>> Unicon-group mailing list
>> Unicon-group@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/unicon-group
>
> --
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group


--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Question relating to Audio

2015-10-14 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

The Audio facilities are underdocumented, probably because they have proven to 
be a sore spot where the implementation has not achieved the degree of 
portability and ubiquity that is required to be a fully standard part of the 
language.  Multiple generations of students have worked on it and it still 
needs some more work. It does in fact work for some folks on some machines, but 
support varies, especially on Linux where the audio has never been as solid as 
on Windows or Macs. The messages you show here appear to be debugging messages 
that should be removed. But the sound not working tells us something else is 
wrong. Perhaps Audio got enabled due to the presence of OpenAL and some other 
libraries, but no libogg and libvorbis combination was found on your platform. 
If it is not going to play, we should do better than fail silently, except 
maybe when speakers are missing or off.  Can you send me an e-mail please, with 
your OS version information?  Also, can you please try a .wav file to
  see if it behaves the same?

Cheers,
Clint


From: Bruce & Breeanna Rennie 
Sent: Wednesday, October 14, 2015 5:40 AM
To: Unicon group
Subject: [Unicon-group] Question relating to Audio

Good evening Clinton,

One of the features in my unicon is Audio. I cannot find any information
on the available functions and the example you have on the course
website for game development doesn't work. It gives the following messages:

AL lib: ALc.c:1879: exit(): closing 1 Device
AL lib: ALc.c:1808: alcCloseDevice(): destroying 1 Context(s)
AL lib: ALc.c:1420: alcDestroyContext(): deleting 16 Source(s)
AL lib: ALc.c:1818: alcCloseDevice(): deleting 96 Buffer(s)


the applicable source code is

procedure main()
PlayAudio("/home/bruce/unicon/src/src/Example.ogg")
delay(1)
end


the applicable features are

Unicon Version 12.3.  Sep 12, 2015
UNIX
POSIX
DBM
ASCII
co-expressions
concurrent threads
dynamic loading
environment variables
event monitoring
external functions
keyboard functions
large integers
multiple programs
pattern type
pipes
pseudo terminals
system function
messaging
graphics
3D graphics
X Windows
libz file compression
JPEG images
PNG images
Audio
operator overloading
CCompiler gcc 4.4.7
Physical memory: 1044389888 bytes
Revision 4182
Arch x86_32
CPU cores 4
Binaries at /home/bruce/unicon/bin/


regards

Bruce Rennie


--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Question relating to the function constructor

2015-10-14 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

This function does in fact create a new record constructor function, 
effectively introducing a new record type on the fly, similar to what you get 
when you declare a record. You are correct that it does not introduce a new 
global variable on the fly, so the parameter "label" is of fairly little use 
except in functions like type() or maybe image().

The capability to introduce new record types was really first demanded by the 
SQL/ODBC facilities, and the constructor() function was introduced afterwards 
to make that facility end-user accessible.  The implementation of those types 
is not as efficient as declared record and class types, but for some 
applications they appear to be useful.

Clint

From: Bruce & Breeanna Rennie 
Sent: Wednesday, October 14, 2015 4:50 AM
To: Unicon group
Subject: [Unicon-group] Question relating to the function constructor

Greetings to all,

In the documentation for unicon, the function constructor has the
following call

constructor(label, fld1,...)

My question relates to the parameter label. Is this value only
applicable in the function type? Or is there a global variable that can
be accessed somehow?

My testing seems to indicate no to the second question, but I am after
clarification of what is intended with this function.

regards

Bruce Rennie.

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Unicode character sets

2015-10-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Richard,


This is an item on our help wanted list where so far no volunteer or sponsor 
has stepped forward and made it happen.

Some Asian users have processed their variable-length string data and used the 
existing I/O functions to develop applications without

extending the language.  I don't recall code libraries being submitted for 
inclusion in the Unicon distribution, but that is one option,

and might allow us to model what we might later propose to build in. If I am 
forgetting someone's library in this area, please forgive

me and chime in with it, folks!


I have given a fair bit of thought to the modifications that would be needed to 
support Unicode-based strings and csets and would

gladly help anyone who decided to work on this. Robert Parlett has done some 
work in this area but has not proposed it for Unicon.

The new Java-based Unicon dialect Junicon might also be a place where a Unicode 
extension might be a natural fit.


Cheers,

Clint


From: Richard H. McCullough 
Sent: Monday, October 12, 2015 5:53 AM
To: Unicon group
Subject: [Unicon-group] Unicode character sets

I am currently working on a project using non-ASCII character sets.
What is the status of the current work on integrating other character sets
into Unicon? I'd be happy to do some testing.

Dick McCullough

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] [QUAR] DrawString and "drawop=reverse" don't work on MS Windows

2015-10-11 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Jafar, thanks for looking at this. I will try to get setup to experiment 
with it and provide you with some support on it this week, since I am the 
author of most of the 2D facilities.

Cheers,
Clint


 Original message 
From: Jafar Al-Gharaibeh 
Date: 10/11/2015 9:54 AM (GMT-08:00)
To: Bruce & Breeanna Rennie 
Cc: Unicon 
Subject: Re: [Unicon-group] [QUAR] DrawString and "drawop=reverse" don't work 
on MS Windows

This reproduces for me on Windows with a build form the latest sources. I 
looked at the code in DrawString and the functions it call and didn't see an 
obvious problem. I'm not very familiar with that code so I can't be sure. I 
looked at drawstrng() and compared it to drawrect() in rmswin.ri and found 
minor differences when it comes to order of operation and setting 
background/foreground color. I experimented with some tweaks  but haven't 
gotten it to work correctly yet.

--Jafar


On Fri, Oct 9, 2015 at 6:40 AM, Bruce & Breeanna Rennie 
mailto:bren...@dcsi.net.au>> wrote:
On 09/10/15 02:36, Steve Wampler wrote:
> On 10/08/2015 07:13 AM, Don Ward wrote:
>> Whilst tracking down a problem I used the program from section 7.1.3 of the 
>> "Programming with Unicon" book. It works
>> fine. But it stops working when I change FillRectangle to DrawString i.e
>>
>> procedure main()
>> &window := open("hello", "g", "drawop=reverse")
>> repeat if Event() === (&ldrag | &mdrag | &rdrag) then {
>>  # erase box at old position, then draw at new position
>> # FillRectangle(\x, \y, 10, 10)
>> # FillRectangle(x := &x, y := &y, 10, 10)
>> DrawString(\x, \y, "Hello !!")
>> DrawString(x := &x, y := &y, "Hello !!")
>> }
>> end
> ...
>> My guess is that there is a problem with the Unicon runtime on Windows.  Can 
>> anybody suggest a solution?
>> In case this is a known problem, I searched the email archive for DrawString 
>> and also for "drawop=reverse" but didn't
>> find anything.
> It also runs fine under Linux (CentOS 6), so I agree that it's a likely 
> Windows-specific issue.
>
> -Steve
Also tested on CentOS 6 using Xfce4 on a 32 bit netwook. Works fine but
I am on Unicon Version 12.3.  Sep 12, 2015
revision 4182.

May need to do an update to the latest sources and see if it is still an
issue.

regards

Bruce Rennie

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Question regarding the regex changes.

2015-09-29 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Dear Bruce,

The next version of Unicon, Version 13, will feature regular expressions as 
constructors that produce values of the new type, pattern.

To answer your question, there is no documentation yet; a conference paper was 
just submitted that contains the first description and
examples of the regular expression syntax. It is really to be understood as 
syntactic sugar on top of patterns, which are documented in Sudarshan 
Gaikaiwari's and John Goettsche's M.S. theses, which are posted. The code that 
has been committed is not turned on by default, and needs some further testing 
and validation before it goes live for most folks. For folks that don't want to 
wait, you can add a couple #defines for PatternType and PatternIntegration to 
your define.h and build with the feature enabled.  

I am working furiously on testing and documentation and will post materials as 
soon as I can.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Tuesday, September 29, 2015 5:02 AM
To: Unicon group
Subject: [Unicon-group] Question regarding the regex changes.

Good evening Clinton,

Is there some new documentation on the new regex functionality you have
just placed into the Unicon compiler?

regards

Bruce Rennie

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Query about maximum string size used

2015-08-15 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

It appears that the MaxStrLen macro is only used in repl() and has very little 
bearing on Icon or Unicon's actual limits. The actual limits will be the lesser 
of the following two constraints:

1. The memory made available to Unicon by the C library function malloc() for 
the allocation of string regions from which Unicon then allocates and manages 
strings.

2. The representation of Icon/Unicon values. As you probably already know, the 
maximum string length that can be represented at present is one bit fewer than 
the size of a machine word, 2^63 on 64-bit systems and 2^31 on 32-bit systems.

I really like the idea of trying a single-word descriptor on 64-bit machines. 
If I were you I would keep things as simple as possible, accepting limits 
equivalent to the 32-bit implementation and just trying to get the single-word 
descriptor to work cleanly and correctly. That will be a big challenge all by 
itself, and as you note, only a few "big data" applications would feel the 
constraint.  You could in fact devise a long string type later on if demanded, 
like what was done for arbitrary precision integers.  But note that single-word 
descriptors will entail other complications and limits on the implementation 
which might or might not be an overall win.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Friday, August 14, 2015 4:21 PM
Subject: Re: [Unicon-group] Query about maximum string size used

In the file cpuconf.h, there is a conditional section for WordBits == 64
which defines MaxStrLen at 2 Gbytes and a conditional section for
WordBits == 32 which defines MaxStrLen at 134 Mbytes.

Due to the nature of the indirect threaded architecture for my new VM
and the standard size of 64 bits for both qualifiers and descriptors
that I am implementing, I have run into a maximum string size limit. If
anyone currently uses strings above the 32 bit limit, I have to keep in
mind that the VM will have to be able to be extended to 128 bits for
descriptors and qualifiers for uniformity.

The basis for my VM is in work and research that occurred during the
70's and 80's that seems quite profitable for designing and development
of a new VM for unicon/icon. Hopefully, the redesign will also allow a
simpler external library interface.

So at this point, other than yourself, the responses for maximum string
size have not caused me any concern about the limits that are in the
unicon/icon sources.

regards

Bruce Rennie

On 15/08/15 08:12, Jeffery, Clint (jeffe...@uidaho.edu) wrote:
> I am pretty sure I have used strings that are several GB long on a computer 
> whose main memory is large enough.  Very large strings get real slow if you 
> are using them to construct new strings (e.g. concatenation), but they are 
> often a first step in speeding things up for avoiding the OS when data is 
> going to be read repeatedly, compared with fetching the same data from files.
>
> A 2GB-1 limit does apply on 32-bit implementations.
>
> Cheers,
> Clint
> 
> From: Bruce & Breeanna Rennie 
> Sent: Friday, August 14, 2015 7:14 AM
> To: Unicon group
> Subject: [Unicon-group] Query about maximum string size used
>
> Good evening to all,
>
> May this day find you well.
>
> I am interested in finding out what sort of maximum sizes of strings are
> used within your various unicon/icon programs. It is just a survey at
> this point. I myself have read in and processed strings in the 20 - 30
> Mbyte range for at least one project that I have used unicon for. From
> the runtime source, the hard limit for strings in 64 bit systems is
> 2,147,483,647 characters and for 32 bit systems, the hard limit is
> 134,217,727 characters.
>
> Has anyone actually approached these limits in actual production programs?
>
> regards
>
> Bruce Rennie
>
> --
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>


--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Query about maximum string size used

2015-08-14 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

Where specifically in the runtime sources are you seeing the hard limits that 
you are reporting?

I am pretty sure I have used strings that are several GB long on a computer 
whose main memory is large enough.  Very large strings get real slow if you are 
using them to construct new strings (e.g. concatenation), but they are often a 
first step in speeding things up for avoiding the OS when data is going to be 
read repeatedly, compared with fetching the same data from files.

A 2GB-1 limit does apply on 32-bit implementations.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Friday, August 14, 2015 7:14 AM
To: Unicon group
Subject: [Unicon-group] Query about maximum string size used

Good evening to all,

May this day find you well.

I am interested in finding out what sort of maximum sizes of strings are
used within your various unicon/icon programs. It is just a survey at
this point. I myself have read in and processed strings in the 20 - 30
Mbyte range for at least one project that I have used unicon for. From
the runtime source, the hard limit for strings in 64 bit systems is
2,147,483,647 characters and for 32 bit systems, the hard limit is
134,217,727 characters.

Has anyone actually approached these limits in actual production programs?

regards

Bruce Rennie

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Question relating to what is expected from the function bal

2015-07-14 Thread Jeffery, Clint (jeffe...@uidaho.edu)
REG was questioned repeatedly about this because it is very inconvenient for 
bal. It is for the sake of consistency with the other scanning functions. They 
do not produce positions after the end of the string.

I think its a flaw, but while consistency would not trump utility for me, 
backwards compatibility does. Maybe it can be fixed by adding yet another 
parameter flag, or maybe we should add a function bala() that behaves more 
usefully.


 Original message 
From: Bruce & Breeanna Rennie 
Date: 07/14/2015 12:44 AM (GMT-08:00)
To: Unicon group 
Subject: [Unicon-group] Question relating to what is expected from the function 
bal

Good evening all on this bitter night of the Antarctic Vortex,

I have a question relating to what should be expected back from the
function bal.

Given the following program

procedure main()
local tstr := "(()())"
every tstr ? write(bal())
end

What are the expected values to be written out?

Should we expect 1 and 7 or just 1?

The above test program on my system gives 1 only. I am in the process of
finalising my UFT8 version of the bal function and I want to make sure
that it gives the correct result.

regards

Bruce Rennie

--
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] CIncludesParser and its ilk

2015-06-28 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

I  will  look and see if there is  additional code or documentation that would 
help you with the nascent improved C interface.

You are not alone in your feelings about Oracle and Java. I mentioned Junicon 
because its got a seamless Java calling interface that is awesome. Unicon needs 
an awesome C (and possibly C++) calling interface.

Cheers,
Clint


 Original message 
From: Bruce & Breeanna Rennie 
Date: 06/28/2015 2:34 AM (GMT-08:00)
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] CIncludesParser and its ilk

Good evening Clinton,

Is the code for the c-interface available? If so where can I get it,
please. I am also redoing the implementation of the VM along the lines
of C based an-indirect threaded 64 bit implementation. This I am
building on a 32 bit based machine. Part of this design is looking at an
automatic translation of unicon/icon descriptors and structures to the
appropriate C structures and values, as well as the translation of C
values and structures to the appropriate unicon/icon descriptors and
structures.

I, personally, do NOT want to have anything to do with JAVA in any form.
This is from a philosophical standpoint of my dislike with ORACLE -
after having dealt with ORACLE products over many years (> 25 years), I
don't expect JAVA to be a viable future direction, irrespective of what
the any overall industry viewpoint might be about the language. I
consider the current court cases over the copyrights that ORACLE wants
on the JAVA API to be strongly indicative of ORACLE's attitude to
programmers and development with JAVA.

How you might view things will be based on your interactions with JAVA
and ORACLE.

regards

Bruce Rennie


On 28/06/15 18:41, Jeffery, Clint (jeffe...@uidaho.edu) wrote:
> Hi Bruce,
>
> $c and $cend are described in Udaykumar Batchu's M.S. report, a link to it 
> can be found at http://unicon.org/reports.html
>
> I consider the C interface project unfinished.  The code worked as described 
> in the report at the time it was done. It might or might not require 
> extension or repair to make functional in the current sources, and even if 
> fully functional, it points in a direction towards easier C-calling,
> but doesn't get us to the finish line.  The new Java-based implementation, 
> called Junicon, has
> raised the bar as far as what ought to be achievable in terms of seamless 
> access to the underlying implementation language and its libraries.  Maybe 
> the C implementation will see a major advance with another M.S. thesis or so 
> worth of work, if the right student comes along.
>
> Cheers,
> Clint
> 
> From: Bruce & Breeanna Rennie 
> Sent: Sunday, June 28, 2015 12:50 AM
> To: Unicon group
> Subject: [Unicon-group] CIncludesParser and its ilk
>
> Good afternoon to all this fair winter's day,
>
> Looking through the Unicon compiler code, I have come across the $c and
> $cend directives and the CIncludeParser function. However, I don't seem
> to be able to find where in the unicon/icon codebase this function is
> defined.
>
> Does anyone know where it is or do I have to download some additional
> software for this functionality?
>
> regards
>
> Bruce Rennie
>
> --
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
> --
> Monitor 25 network devices or servers for free with OpManager!
> OpManager is web-based network management software that monitors
> network devices and physical & virtual servers, alerts via email & sms
> for fault. Monitor 25 devices for free with no restriction. Download now
> http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>


--
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices f

Re: [Unicon-group] CIncludesParser and its ilk

2015-06-28 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

$c and $cend are described in Udaykumar Batchu's M.S. report, a link to it can 
be found at http://unicon.org/reports.html

I consider the C interface project unfinished.  The code worked as described in 
the report at the time it was done. It might or might not require extension or 
repair to make functional in the current sources, and even if fully functional, 
it points in a direction towards easier C-calling,
but doesn't get us to the finish line.  The new Java-based implementation, 
called Junicon, has
raised the bar as far as what ought to be achievable in terms of seamless 
access to the underlying implementation language and its libraries.  Maybe the 
C implementation will see a major advance with another M.S. thesis or so worth 
of work, if the right student comes along.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Sunday, June 28, 2015 12:50 AM
To: Unicon group
Subject: [Unicon-group] CIncludesParser and its ilk

Good afternoon to all this fair winter's day,

Looking through the Unicon compiler code, I have come across the $c and
$cend directives and the CIncludeParser function. However, I don't seem
to be able to find where in the unicon/icon codebase this function is
defined.

Does anyone know where it is or do I have to download some additional
software for this functionality?

regards

Bruce Rennie

--
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors
network devices and physical & virtual servers, alerts via email & sms
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors 
network devices and physical & virtual servers, alerts via email & sms 
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Merge of Steve Wampler's UniLib and Robert Parlett's Class code for unicon

2015-06-03 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

I commend you for looking at this.  I have been wanting to merge in Steve's 
libraries for a long time.  Your analysis is spot on. We want to not duplicate 
the overlapping parts, but we want to preserve backward compatibility, and the 
goals conflict.

My advice is: the problem as posed is too big.  Find small pieces that we can 
manage to merge successfully, that are non-conflicting and/or self-contained if 
possible.  Let's do some of those and actually get them into the public Unicon 
distribution, we will gain experience points and levels from that.

For bigger, conflicting and overlapping classes and packages, we get into 
technical details and careful considerations. Probably this group is not the 
place for that, we almost need a separate mailing list or working committee.

Cheers,
Clint


From: Bruce & Breeanna Rennie 

After having contacted both Steve Wampler and Robert Parlett, I am
putting out a request for feedback on the merging of both sets of unicon
code into one standardised unit.

As a result of looking at both code bases, i find that there are a
number of different class Class definitions. In some areas they overlap,
in others they give quite different facilities. In my own code base, I
have a number of classes that duplicate some of the facilities as
provided by each of the aforementioned code bases.

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] modified version of options.icn file from ipl

2015-05-26 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

Regarding options.icn your discovery that punctuation marks can be options is 
interesting. Some programs definitely might use them.

Compatible extensions to options.icn that make it flexible enough to handle 
Unicon's own command line option processing would be welcome as a submission to 
the main Unicon distribution.  If we can then eliminate a bunch of code in the 
Unicon translator that would be swell.

I think Jafar maybe had some interesting things to say in regards to the Icon 
(and Unicon) -x processing, which disables all options processing after the -x. 
 Anyone who uses -x probably understands why it terminates options processing 
on later arguments: because subsequent options, which are allowed, are passed 
into and interpreted by the Icon/Unicon program being executed, not by the 
Unicon translator.

Regarding balancing multi-character strings, I hope someone finds a procedure 
you can use. You might also try the Icon mailing list.  Ralph Griswold was fond 
of writing replacements for built-ins in Icon, so a version of bal() written in 
Icon may very well be floating around.

If you are to write your own, you might start with slashbal() from 
ipl/procs/scan.icn and just tweak its use of the relevant parameters.

Cheers,
Clint


From: Bruce & Breeanna Rennie 
Sent: Tuesday, May 26, 2015 4:50 AM
To: Unicon group
Subject: [Unicon-group] modified version of options.icn file from ipl

For anyone interested,

I have made some minor modifications to the options.icn file from the
IPL. Just by accident, I found that it allows a single non-alphanumeric
character to be an option name. Examples are -#, -[, etc. This ability
is not described within the documentation in the file.

The minor modifications that i have made is to add an additional
parameter to the procedure. This parameter allows one to specify an
option or a list of options that will stop the extraction of options
from the command line arguments. The standard value for this in the
original procedure was --. This is still the default in my code.

The reason for making these changes is due to the outcome of a brief
conversation with Steve Wampler. we were discussing some possible
changes for the unicon compiler and unicon language. In following up
Steve's suggestions, I have been looking at the unicon compiler code. i
noticed that the option processing didn't use the options procedure. I
understand this is due to the specific requirements of the unicon compiler.

I have made changes to options.icn to allow its use within the unicon
compiler.

If anyone is interested in my updates, please contact me and I'll pass
them onto you.

A question to you all. Has anyone created a version of the inbuilt
function bal which uses two strings for the balance criteria instead of
csets? I have a specific need for this and if someone has already done
so, I would like to utilise your expertise instead of reinventing the wheel.

regards to all this wonderful autumn evening.

Bruce Rennie





--
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Detailed explanation of how Unicon/Icon system functions work

2015-04-14 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Dear Bruce,

Ralph Griswold was fond of saying, more or less, that the source code of the 
implementation was the final reference and operational semantics for the 
language. The most detail I got from a quick scan of the Icon book 3rd edition 
was

The function center(s1, i, s2) centers s1 in a string of length i, padding on 
the left and right, if necessary, with s2. If s1 cannot be centered exactly, it 
is placed to the left of center.

The Unicon book at present tends not to try and trump the Icon book in terms of 
precise definition of behavior defined originally in Icon, but now is our 
opportunity to improve it.  If you want to author a supplementary detailed 
reference doc you are welcome to do so. If we can agree on a 
Unicon-programmer-friendly, reasonably concise set of clarifications/expansions 
of the function descriptions that are in the Unicon book, I would be more than 
happy to put them in there directly.

Best regards,
Clint 

From: Bruce & Breeanna Rennie 
Subject: [Unicon-group] Detailed explanation of how Unicon/Icon system  
functions work

Good morning Clinton,

I am wondering if there is any documentation available that describes
the full functionality of each of the system functions available in
Unicon/Icon.

for example we find the following explanation in the Programming with
Unicon Book:

*center(s, i:1, s:” ”) : string*
center string
center(s1,i,s2) produces a string of i characters. If i > *s1 then s1 is
padded equally on the left and right with s2 to length i. If i < *s1 then the 
center i characters of s1 are produced.

However, this explanation does not give the detailed result that will be
obtained when the length of s1 is odd and when it is even. Neither does
it give the detailed results when the length of s2 is greater than 1.

I am in the process of converting my UFT8 code to a class based format.
I am creating the UFT8 equivalents for each of the system defined string
functions.  These will be able to be used in string scanning where the
&subject is an UFT8 string.

If there is detailed documentation already done, I will use that as
comments within the code. As well as use it to verify the results
obtained from the UFT8 methods.

If there is not, I will create a supplementary document that gives the
full details and will base it on the comments I place in the UFT8 class
file.

I should note here that the class structure and usage that I am using
for this has some similarities to what may be seen in Python and
Javascript (sort of). I have been slowly converting a number of code
bases currently available in both of these languages to Unicon/Icon. As
a result, I have created a couple of analogues in Unicon for some of the
"features" found in the code bases.

Hence, the documentation for the UFT8 class will have additional details
on how it is designed to work in conjunction with these additional
parent classes. I'll release as soon as I have completed the current
class development.

regards

Bruce Rennie

--
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Opening bluetooth?

2015-03-25 Thread Jeffery, Clint (jeffe...@uidaho.edu)
?I have not heard of someone using Unicon with bluetooth directly.  It would be 
possible to construct an extension to access it, possibly via the C calling 
interface.  Alternatively, if one extracted and obtained the application layer 
data in a file using some third party tool, one might analyze the data in such 
a file using conventional Unicon methods.


Cheers,

Clint


From: david.ga...@rogers.com 
Sent: Wednesday, March 25, 2015 10:42 AM
To: Unicon group
Subject: [Unicon-group] Opening bluetooth?

?I have no idea if union supports this.

I need to proxy a Bluetooth connection to analyze the application layer data 
and thought I'd ask.

Thanks david



Sent from my BlackBerry 10 smartphone on the Rogers network.
--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Bignum facilities

2015-02-25 Thread Jeffery, Clint (jeffe...@uidaho.edu)
The closest thing to "bignum" that we talk about are our arbitrary precision 
integers, also called large integers.

They are enabled by default in most builds, and when enabled they are a 
silent-and-seamless property of the

integer type, rather than a separate type.  &features can tell you whether you 
have them or not. Feel free to ask

followup questions. I realize I have not "summarized" much.


Clint


From: Steve Graham 
Sent: Tuesday, February 24, 2015 3:20 PM
To: Unicon Group
Subject: [Unicon-group] Bignum facilities

I've also heard that Icon (and Unicon?) has bignum facilities.  Can anyone 
summarize them?

Thanks, Steve

--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] ActiveX dll

2015-02-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)
I am not aware of someone doing any custom ActiveX support for Unicon.
I would be willing to advise and assist with such an effort.
The generic  C calling support was at one time ported to Windows, to allow 
calling
functions in .dll files, but it has not been maintained and would need some work
in order to be usable with modern Unicon 12 programs.

Cheers,
Clint

From: John Sampson 
Sent: Thursday, February 12, 2015 8:50 AM
To: Unicon group
Subject: [Unicon-group] ActiveX dll

Can ActiveX dll files be called from Unicon? I have a proprietary
software package with a command interface in the form of an ActiveX dll
file.
This can be called from programs in Visual Basic 6 or Visual Basic .NET.

Regards

John Sampson

--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] open(file, r (vs) ru) and premature end of file on read()

2015-02-08 Thread Jeffery, Clint (jeffe...@uidaho.edu)
The most likely culprit would be a control-D on unix or control-Z for DOS. 
Binary mode sure sounds like a DOS concept, doesn't it? Give us a small sample 
that demonstrates and we will look into it but it may be the C library or the 
OS.


 Original message 
From: Jafar Al-Gharaibeh 
Date: 02/08/2015 7:37 AM (GMT-08:00)
To: david.ga...@rogers.com,Bruce & Breeanna Rennie 
,unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] open(file, r (vs) ru) and premature end of file on 
read()



David,

   I have seen this behavior in a program copying a few files, one of them was 
a little image. Only a few bytes were being copied in the image file, upto to a 
byte that was being translated as EOF. As Bruce advised, for binary data you 
want to use the "u" mode to make sure you are always getting untranslated data. 
I learned my lesson! :-)

--Jafar

On Sun, Feb 8, 2015, 9:15 AM null 
mailto:david.ga...@rogers.com>> wrote:
?Bruce,

The data us correct for parity. It was captured by a device that is essentially 
a serial sniffer

The record causing the problem was further decoded from the original stream and 
generated by my first filter.

The question, and I will come back to look at it more once I get what I need 
from the second filter, is why did read prematurely stop reading the file.

The file is over 9k records and read stops after just over 100.

It suggests that a sequence of binary characters in a file means end of file to 
read unless it's opened ru.

David

Sent from my BlackBerry 10 smartphone on the Rogers network.
  Original Message
From: Bruce & Breeanna Rennie
Sent: Sunday, February 8, 2015 1:45 AM
To: 
unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] open(file, r (vs) ru) and premature end of file on 
read()

Good afternoon David,

The fact that you are reading data that came from a serial connection, I
would check what the data and parity of the connection is first. In any
case, I would always advise that you open with "ru" on any
communications line (serial) as. One can never assume that any
communications line will have sensible information in terms of
characters coming down it.

Early in my career,I and my colleagues wrote communications programs in
COBOL and in doing so, we saw "interesting" bit streams crossing the
communication lines. In a number of cases, we had to use line analysers
to determine how we should interpret the data.

regards

Bruce Rennie

On 08/02/15 05:17, David Gamey wrote:
> Hi Folks,
>
> I needed to add some logic to data filter I was working with. I chose
> to write a separate test version to process the output of the first
> filter with the idea of combining them later. And then I hit a
> strange result.
>
> * The original data was a trace of a serial connection, so lots of
> STX, ETX, NUL, etc.
> * The original filter opened the files with "r" and "w" modes. It
> appeared to operate fine.
> * The test filter originally also opened the files the same way.
>
> I was surprised that the filter stopped reading about 1% of the way
> through the file as if it hit end of file. The line following the last
> read was synthesized by the filter and not in the original trace - so
> I think that line is the cause.
>
> Needless to say I was a bit surprised and perturbed.
>
> I can bypass this by opening with "ru" so I am fine for now. I'll also
> go back and fix the original filter (but I don't think it was a
> problem in the original file).
>
> _The question that I wanted to pose was what is causing read to fail
> before the actual end of file?_
>
> David
>
>
> --
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
>
>
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group


--
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

-

Re: [Unicon-group] [SPAM] Re: Walk of file directory

2015-01-23 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Are temp files persisting instead of being removed when the process terminates? 
That's a bad leak, if so. Or is it just that we have such large file systems 
now that the common prefix is killing us for the number of tempnames generated 
on a single run?


 Original message 
From: Jafar Al-Gharaibeh 
Date: 01/23/2015 12:01 PM (GMT-05:00)
To: Wade 
Cc: Unicon group 
Subject: [SPAM] Re: [Unicon-group] Walk of file directory


Wade,

   _tempnam(dir, prefix) is provided by Windows, we just use it and it turned 
not to be smart at all - at least on my Windows 7 machine. However, our code 
that uses it could be made smarter to always use randomized prefix every time - 
that is one approach.

Thanks,
Jafar


On Fri, Jan 23, 2015 at 3:44 AM, Wade 
mailto:sta...@yceran.org>> wrote:
Sounds like the _tempnam() function could be a lot smarter in creating 
temporary filenames. Is that our function or is it provided by Windows?

Wade.


On Fri, 23 Jan 2015 20:13:17 +1100, Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:

Jafar,

I am very appreciate for your investigations! Actually, my Windows %TMP% folder 
included ~135000 temporary files, so when I cleaned it my run time decreased 
from ~40 secs to ~20. And the very first open() was instant, then its time 
increased as number of temporary files increases too. My proposal to purge all 
temporary files after program finishes or instead use virtual storage at RAM, 
as on every searched subdirectory is created single temporary file. After very 
short time TMP folder will contain a myriad of such files.

Nevertheless I confirm that number of threads practically do not influence on 
execution time. Probably, it's the problem of "lazy cleanup", as you mentioned. 
Hope you could find solution. Compared with Linux - Windows is quite a bag of 
different bugs! Which runs from every holes :-)

Thank you,
Sergey

23.01.2015, 10:19, "Jafar Al-Gharaibeh" 
mailto:to.ja...@gmail.com>>:
Sergey,

   Thanks for the report. I had in mind to look at why we don't get much speed 
up with more threads. I did look and found that the main thread was grabbing 
most "new thread tokens" and not recycling them fast enough. I have to tweak my 
algorithm to allow quick cleanup and reuse of threads. I will do that when I 
get a chance.

Now the second issue - and you've gotta love this!-, I was able to confirm the 
slow open(). With the help of gdb and after spending a couple of hours digging 
into the C code and the Windows API calls, I found that the problem is in a 
call to _tempnam() to create a temporary file name. The call was taking so long 
to finish. It creates the tmp file under your system TMP folder (%TMP% on 
Windows). I looked in that folder and found that it has more than half a 
million files (~2.7GB)!

It turned out that every time my program runs, Windows was looping through that 
huge pile of tmp files to find a name that doesn't exist so that it can give it 
to the program. Of course I think most of those tmp files were generated by my 
program during previous runs the last couple of days.

As a bonus, I discovered a memory leak in the process of tracking the open() 
problem. I committed a fix for that leak. This is only affecting Windows.

Short  term solution: flush your TMP folder.
Long term: we will into ways to improve our tmp file strategy to overcome the 
shortcoming of Windows API. This will come in a later date! :)

Cheers,
Jafar


On Thu, Jan 22, 2015 at 4:43 AM, Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Jafar,

You've provided very interesting version of walk directory algorithm. 
Communication with active threads' is a great thing!
I have checked your program under Windows 7. I was confused the fact that 
execution time is negligibly depended on number of concurrent threads. I dug 
into and discovered that the first operation open(s) takes near ALL execution 
time! 95% at least. Check it yourself when you slightly edit getdirs():
...
if ( stat(s).mode ? ="d" ) & ( tm := &time, d := open(s) ) then {
  if n=1 then write(s," : ",&time-tm)
...


So, if first open() is so long then all other enhancements have no sense. 
Please clarify if I am wrong.

Best regards,
Sergey

22.01.2015, 00:58, "Jafar Al-Gharaibeh" 
mailto:to.ja...@gmail.com>>:
Here is a slightly tweaked/reformatted version. It now by default auto-detect 
the number of available cores in the machine and launch twice as many threads.

--Jafar

On Wed, Jan 21, 2015 at 12:17 PM, Jafar Al-Gharaibeh 
mailto:to.ja...@gmail.com>> wrote:
David,

I added a threaded solution @ 
http://rosettacode.org/wiki/Walk_a_directory/Recursively#Icon_and_Unicon
   Please review/edit as you see fit. (The source file is attached). Combining 
recursion with thread might not be the best solution for this problem. If I 
were to put this in real use I'd go with an iterative approach using 
master/workers model. Anyway, this is a excellent demonstration on how to use 
threads!. The key features are:

Re: [Unicon-group] Walk of file directory

2015-01-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi,


I am all for implementing a library procedure, or class, to do this as part of 
the Unicon distribution, if one is not there already.  I am wondering why I 
haven't noticed someone chime in with the stat() function, it is the building 
block one uses to read file attributes, determine if something is a directory, 
etc.  I do know the Unicon book has an example program that walks through 
directories recursively.


Cheers,

Clint


From: Sergey Logichev 
Sent: Monday, January 12, 2015 3:05 AM
To: David Gamey; Jafar Al-Gharaibeh
Cc: Unicon group
Subject: Re: [Unicon-group] Walk of file directory

David,

Ok, I will try to implement it myself at first. If I will be in trouble I ask 
you help, sure. In any case I will inform Unicon group about it.
It would be great to implement file search directly in Unicon. As Jafar 
mentioned, we already may do it within current directory with help of open() 
function. For example, open("*.icn") does filtering of icn files in the 
directory. Next step would be logical to do search recursively in all 
subdirectories. For example, something like open("rootdir/*.icn","recursively").

Sergey

11.01.2015, 22:25, "David Gamey" :
Sergey,

I am responsible for much of the Rosetta code contributions (thanks also to 
Steve, Andrew, Matt, Peter, and about 4 others) and this one in particular 
dating from 2010. As I recall this was before the multi-threading versions were 
widely available. I think multi-threading is underrepresented in Rosetta/Unicon.

If you come up with a multi-threading version, we should add it to the post as 
an alternative version.  If you don't feel comfortable doing this, post the 
code and I can add it.

David



From: Sergey Logichev mailto:slogic...@yandex.ru>>
To: Jafar Al-Gharaibeh mailto:to.ja...@gmail.com>>
Cc: Unicon group 
mailto:unicon-group@lists.sourceforge.net>>
Sent: Sunday, January 11, 2015 1:16 AM
Subject: Re: [Unicon-group] Walk of file directory

Jafar,

Thank you for a whole bundle of advices and suggestions! Threads are worth to 
try. The thought of search by file attributes is very useful too. Your 
suggestion about slow I/O partly is right. For UNIX I tried the program on 
Raspberry Pi with 6 Class microSD as HDD (it's slow, agree). But for Windows it 
was quite fast HDD. It would be interesting to compare performance of the 
program on Windows with classic approach based on Win32 _FINDFIRST, _FINDNEXT 
functions. I have threaded Delphi/Lazarus implementations of this algorithm. 
Feel that it will be faster but in which degree?

Sergey

10.01.2015, 21:50, "Jafar Al-Gharaibeh" 
mailto:to.ja...@gmail.com>>:


Sergey,

  There are so many things that came to mind when I saw your program.

1-  At the end of your email, sourceforge ad says "Go Parallel", Which is not a 
bad idea for this highly parallel application.

 There is a similar program "wordcount" listed in my dissertation (available on 
unicon.org) that go through directories and count words in 
every file using threads (Chapter 7, page 107)

2- Unicon open() already supports " pattern matching that would greatly (I 
believe) speedup your program. For example you can do this:
L := open("*.icn")

   to get a list of all of Unicon source files in the current directory.

  Note: It would be nice if there were a way to tell open() to return files not 
only based on a pattern, but also on file attribute to allow something like 
"get me all directories in the current directory", or "get me all read only 
file". There are a lot of situations where filtering directory names for 
example is very useful - like this program

3- The program on Rosetta Code is not optimized for speed. You can minimize the 
number of lists created and put() by careful rewriting of the code.

4- Depending on how deep the directory tree is, there might be a lot of I/O 
going on. A slow disk might limit how fast you can go regardless of how 
optimized your code is.

I will share results if get around trying any of these options.

Cheers,
Jafar



On Sat, Jan 10, 2015 at 5:51 AM, Sergey Logichev 
mailto:slogic...@yandex.ru>> wrote:
Hello all!

Now I investigate the best approach to get list of files in specified directory 
and beneath in Unicon.
I found excellent example at rosettacode.org: 
http://rosettacode.org/wiki/Walk_a_directory/Recursively#Icon_and_Unicon

I reconstructed this one to implement matching of filenames to specified 
pattern (regular expression). My program recursively walks a directory and 
prints appropriate filenames. The same as dir (ls) does. All working fine 
except performance. If directory has a lot of subdirs the search may took 10-20 
seconds before starting output. Could you provide some advices how to enchance 
the performance?

Some notes how to make and use. Unpack content of udir.zip to your local 
directory. Define which environment you use in env.icn file - uncomme

Re: [Unicon-group] Linking issue

2015-01-08 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Duke,

cfunc.u comes from ipl/cfuncs and it should normally get rebuilt/updated when 
Unicon is built from sources, but apparently it did not in this case. You might 
try compiling cfunc.u in the ipl/cfuncs directory and copying the result over 
into ipl/lib -- that might work, but there might be additional complications of 
cfuncs/ being out of date, such as .obj files not working if the C compiler has 
changed. Since you are working on Windows, Jafar may have better suggestions 
for you.

The C calling interface is under-used on Windows, so while some of us may be 
happy to help you get it working, it may require some tweaking to the iconx.exe 
to make it work with the current C compiler.

Regards,
Clint


From: Duke Normandin 
Sent: Thursday, January 08, 2015 2:18 PM
To: Unicon List
Subject: [Unicon-group] Linking issue

I found the utility app "htget" in the Unicon/ipl/progs directory

Compiling...
Parsing htget.icn: ...
Translating:
htget.icn:
  main
No errors
Linking:
version mismatch in ucode file C:\Unicon\ipl\lib/cfunc.u
ucode version: U12.0.00
expected version: U12.1.00

How do I update  cfunc.u ?
--
Duke

--
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] can't use email address as table key

2014-08-09 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Dick,


Let's consider this a bug unless/until we identify that there is a compelling 
reason for it. What kind of table we are talking about here? Icon and Unicon's 
table data type does not do anything to their keys. You mention inserting and 
fetching: is this on GDBM, ODBC, or something else? Can you provide a simple 
example program that illustrates the bug?


Cheers,

Clint



From: Richard H. McCullough 
Sent: Saturday, August 09, 2014 7:29 PM
To: Unicon group
Subject: [Unicon-group] can't use email address as table key

Unicon quotes my key, so I have to use a different key
to insert and fetch values.

Is this considered a bug or a feature of Unicon?

Dick McCullough
Context Knowledge Systems
What is your view?

--
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] IYACC 1.0 bug report

2014-07-01 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

Please feel invited to report other instances of undeclared variables in the 
IPL or Unicon library code. It is probably not deserving of a unicon-group 
post, but private e-mail to myself and/or Jafar, or much better, a bug report 
on Unicon's bug tracker on source forge would be the best way to communicate 
these.  In this particular case, I committed a fix for Dick's bug report to SVN.

I love the idea of folks writing parser generators in Icon or Unicon. I did one 
of these as homework in graduate school. It worked, but it was pretty difficult 
to get it to run fast enough back in those days. Let me know when yours can 
handle unigram.y and let us do away with iyacc.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Tuesday, July 01, 2014 4:32 PM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] IYACC 1.0 bug report

Richard,

When compiling, are you using the "-u" option? If so then this will come
up. I have found that some parts of the unicon system don't declare
local variables, this being a specific example. I use the "-u" option as
a matter of course with my own development to catch all such
non-declarations.

I have to laugh though, I am currently doing work on a full LR1 parser
generator. I have wanted to write one in unicon/icon for many years and
I am now working on it.

regards

Bruce Rennie

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] internet directory contents

2014-06-25 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Sergey,


Thanks for your report, this bug reproduces nicely for me. Does your file end 
in a newline, or is it just 3 bytes long, total?  I am getting that the 
messaging facilities have a problem with files not ending with a newline, but 
perhaps it is more subtle than that.


Regards,

Clint



From: Sergey Logichev 
Sent: Wednesday, June 25, 2014 1:17 AM
To: Unicon
Subject: Re: [Unicon-group] internet directory contents

Hello,

it was very interesting to observe progressive elegancy of your code %-)), but 
I have following question. There is ordinary text file which contains a single 
line "3.3". File is stored on the web. Why when I try to read it as

procedure main()
  f := open("http://xmarkup.sourceforge.net/xm.version","m";) | stop("http open 
error")
  write("v",read(f)) # shall print v3.3
  close(f)
end

I don't get open error but actually no data are read? It seems as the file is 
empty, but it is not true. You can check it in your browser.

Best regards,
Sergey

25.06.2014, 00:05, "Jafar Al-Gharaibeh" :
I think in this case, at least, failure of either of those clauses would cause 
backtracking into the !fd, producing
the next line to scan.  (He hopes!)


Oh yeah, backtracking! a power feature that I forgot about in this case. :-)

We will let Dick tell us what works and what not if he opted to try any of 
these solutions.

--Jafar




--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.
,

--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft

,

___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] make Unicon on Cygwin (Windows 8.1)

2014-06-13 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Sergey,


We use setrlimit() to increase the size of the stack on UNIX systems.The 
message is non-fatal, but it is an indication that setrlimit() couldn't give us 
what we asked for. It might or might not predict a stack overflow, since our 
calculation of how much stack will be needed is very approximate, and Cygwin 
might or might not provide an adequate stack.  If you need to follow-up this is 
probably a private e-mail or unicon-ldif mailing list topic.


Cheers,

Clint


From: Sergey Logichev 
Sent: Thursday, June 12, 2014 11:33 PM
To: Jafar Al-Gharaibeh; shea.
Cc: Unicon group
Subject: Re: [Unicon-group] make Unicon on Cygwin (Windows 8.1)

One more oddity. In general icon programs builded with unicon-cygwin can run. 
But when I tried to run performance test with special build of xmarkup it 
outputs time-to-time following message:

iconx setrlimit(41542164) failed 22

What is it?

13.06.2014, 10:26, "Sergey Logichev" :
I have discovered one more strange thing about Unicon on Cygwin64/Win8.1. Under 
cygwin all works fine, but unicon executable can't run under pure Windows and 
say that it's incompatible with 64bit architecture of OS. Strange, because 
icont.exe and iconx.exe run fine provided that cygwin1.dll is visible.

That fact is very unpleasant as pure Windows executables can run fine under 
cygwin and vice verse (with cygwin1.dll).
Actually, the same thing I encountered with cygwin build of old good Icon 
v9.3.1 on Win8.1. Current Icon v9.5.1 builded under cygwin runs fine under pure 
Windows 8.1.

Sergey

12.06.2014, 19:02, "Jafar Al-Gharaibeh" 
mailto:to.ja...@gmail.com>>:
On Thu, Jun 12, 2014 at 2:48 AM, shea. 
mailto:shean...@gmail.com>> wrote:
Hey Sergey,
I've had similar issues with x86_32 and in order to enable concurrency
there I think you need all three of the following commands in
src/h/define.h.

#define HAVE_LIBPTHREAD 1
#define Concurrent 1
#define NoKeyword__Thread 1

Actually, I tend to put these defines in /config/win32/gcc/define32.h
(I guess for you it'd be /config/win32/cygwin/define.h) as well though
because "make Unicon" on Windows I think overwrites the other
define.h.


On a Linux environment, which cygwin provides. Only

#define Concurrent 1

is needed. And since we are taking a Linux "approach",  I don't think any 
config/win32 is involved. Although as we found yesterday, the win32 version of 
rswitch.s was needed instead of the Linux's.

I've noticed the push instruction error in rswitch.s as well(for 32
bit builds), which enabling concurrency seemed to fix but I may spend
some time looking at it and see if I can spot the problem.

Enabling concurrency drops the need for rswitch.s since we switch (no pun 
intended) to pthreads to provide the co-expression's context switch.


--Jafar


 - Shea Newton

--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
,

--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems

,

___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Updating location of compiled binaries [was previously : Question regarding search paths for iconx on Linux]

2014-06-11 Thread Jeffery, Clint (jeffe...@uidaho.edu)
In principle, patchstr.exe will probably work the same under Windows as it does 
under UNIX-based systems, and I endorse the idea of including it in the Windows 
binary distribution in future builds.  Another possibility would be to bundle 
patchstr-style capabilities into other tools as command-line options.


Anyhow, I am sure glad that patchstr has been useful to you, Bruce.


Cheers,

Clint


From: Sergey Logichev 
Sent: Tuesday, June 10, 2014 9:10 PM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] Updating location of compiled binaries [was 
previously : Question regarding search paths for iconx on Linux]

Bruce,

for Unicon problem with rigid link to iconx really persists. For Windows it may 
be solved by putting all unicon and application binaries in one directory. For 
Linux I managed to solve it by adding location of unicon binaries to PATH 
variable. Your approach with patchstr is really a workaround. But 
unfortunatelly under Windows make doesn't create patchstr.exe. I think we shall 
humble ask Clint and Jafar to include it. Or to try solve it as it done for 
Icon.

Sergey

10.06.2014, 11:35, "Bruce & Breeanna Rennie" :

Good evening Sergey,

Thanks for that. My problem has been that I have my production system in
one location, including the IPL etc. I also have a second system which
is my development system for changes I am looking at. This is in another
location. I also have the latest SVN version as well, on which I run a
variety of tests and changes. This is in a third location.

Up to now, even with my PATH set accordingly, as well as IPATH and
LPATH, when I do an update of the SVN version and before I do a full
rebuild, I lose access to my production binaries as the internal path
uses the SVN location.

With the change I have made to my scripts, I don't have to concern
myself with what is happening in the SVN version. Unicon now accesses
the correct icont/iconx binaries for my production files.

regards

Bruce Rennie

On 10/06/14 15:44, Sergey Logichev wrote:

 Bruce,

 Yes, with old version of icon and unicon too (however I am not sure
 for unicon) the problem was with correct path to iconx binary.
 For Icon v9.3.1 and 9.3.2 under Windows I usually put icont and iconx
 together. Then I compiled my program as:
 %path-to-icon%\icont -A myprogram.icn

 To run myprogram.exe I put %path-to-icon% to common PATH or copied
 icont/iconx to location of the program. Second way is working on 100%.

 But as it's turned on - it is because old icont had rigid path link to
 iconx in itself body. The same true for cygwin or linux. Then you
 build new executable with such icont the rigid link to iconx is
 inherited and cloned to executable. For Windows path problem maybe
 solved as I described, for unix patchstr was introduced. As I
 understood when you want to move iconx from original make location you
 need to patch icont only. Iconx doesn't point on itself.

 BTW starting with Icon 9.5 (as I remember) this "rigid chaining" of
 icont to iconx was cancelled. All path settings you can define through
 PATH variable.

 Best regards,
 Sergey Logichev

 07.06.2014, 12:20, "Bruce & Breeanna Rennie" 
mailto:bren...@dcsi.net.au>>:
 To all,

 One problem that I have experienced was getting my system to use the
 correct binaries for icont and iconx. Previously, I have had some
 communications with Clinton on the [Unicon-ldif] list. I finally have
 found my solution and now understand a bit more of what Clinton was
 saying at the time.

 I am putting it my findings here for anyone else who regularly does
 rebuilds from source or wants to shift the location of the unicon/icon
 binaries.

 Courtesy of Ralph Griswold and his team, they have a lovely little
 program called patchstr. Up till now, I didn't understand its purpose.

 Using it on the icont and iconx binaries, I now have my system working
 as it should.

 I have placed two lines in my final rebuild shell script as follows

 patchstr icont "$HOME/unicon/bin"
 patchstr iconx "$HOME/unicon/bin"

 This leaves my normal working files now using the correct binary
 location.

 It just goes to show that even after many years of just using
 unicon/icon there is still more to learn.

 Thanks for your pointers Clinton and to those who contributed in the
 past with patchstr.

 regards

 Bruce Rennie


 --
 Learn Graph Databases - Download FREE O'Reilly Book
 "Graph Databases" is the definitive new guide to graph databases and
 their
 applications. Written by three acclaimed leaders in the field,
 this first edition is now available. Download your free book today!
 http://p.sf.net/sfu/NeoTech
 ___
 Unicon-group mailing list
 Unicon-group@lists.sourceforge.net
 
>
 https://lists

Re: [Unicon-group] Unicon literal continuation convention

2014-06-08 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Dick,

String literals (constants) are things that appear in source code. The 
continuation of a string literal on a succeeding line of source code is a 
property of the compiler/translator, not the runtime system functions.
So no, read() and other built-ins do not do this, but if you needed input 
processing of text that looks like Unicon source code, you could link in the 
Unicon lexical analyzer itself into your program, and it would process your 
input exactly how Unicon does, multiline literals and all.

Cheers,
Clint

From: Richard H. McCullough 
Sent: Sunday, June 08, 2014 7:59 PM
To: Unicon group
Subject: [Unicon-group] Unicon literal continuation convention

I read in the appendix that last character == "_"
continues a literal to the next line.

I noticed that read() does not support this convention.

Are there any built-in functions that support this
convention?

Dick McCullough
Context Knowledge Systems
What is your view?


--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://www.hpccsystems.com
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://www.hpccsystems.com
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Table keys

2014-06-07 Thread Jeffery, Clint (jeffe...@uidaho.edu)
I think you could always use any type as table keys but it used to be really 
slow and it got better when serial numbers were introduced for structure types. 
They're still of dubious utility since equivalent structures don't map to the 
same key.

Clint



 Original message 
From: user 
Date: 06/07/2014 12:53 PM (GMT-08:00)
To: Unicon group 
Subject: [Unicon-group] Table keys



It's official now: you CAN use lists (and records?... and even tables?) as
table keys!
Although there seems to be a catch:
#global Table  GLOBAL or LOCAL doesn't matter!
procedure main()
local l1,l3,l4,l5,l6,k,Table
l1:=["test","test-1"]
l3:=copy(l1);l4:=copy(l1);l5:=copy(l1);l6:=copy(l1)
Table:=&null; Table:=table(); k:=&null
#--
Table[["test","test-1"]]:=22; write(*Table)
Table[["test","test-1"]]:=33; write(*Table)
Table[["test","test-1"]]:=44; write(*Table)
Table[["test","test-1"]]:=55; write(*Table)
every (k:=key(Table),write(Table[k]))
#--
write()
Table:=&null; Table:=table(); k:=&null
Table[l3]:=66; write(*Table)
Table[l4]:=77; write(*Table)
Table[l5]:=88; write(*Table)
Table[l6]:=99; write(*Table)
every (k:=key(Table),write(Table[k]))
#=OK (expected behavior)
write()
Table:=&null; Table:=table(); k:=&null
Table[l1]:=6; write(*Table)
Table[l1]:=7; write(*Table)
Table[l1]:=8; write(*Table)
Table[l1]:=9; write(*Table)
every (k:=key(Table),write(Table[k]))
write("OK-OK-OK!")
#=OK (expected behavior)

end

## Bob ##


--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Performance Icon/Unicon on Windows

2014-06-05 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Dear Sergey,

Thank you for this very interesting post. We are very interested in comparing 
different Icon and Unicon implementations on different OS/CPU/compiler builds 
and identifying the fastest way to run different kinds of Icon and Unicon 
programs. Perhaps your benchmark tests certain language features not 
well-covered by our current benchmarks, which come from expansions of the old 
Icon Benchmark suite, plus the computer language benchmark game.  I will send 
you a separate message about it after I have had a chance to look at your work 
in more detail.

Warm regards,
Clint Jeffery

From: Sergey Logichev [slogic...@yandex.ru]
Sent: Thursday, June 05, 2014 6:16 AM
To: Unicon group
Subject: [Unicon-group] Performance Icon/Unicon on Windows

 Hello!

I have tested different builds of Icon/Unicon for Windows. It seems that for 
old PC/notebook results may depend from current system activity during test. 
For example antivirus software may influent in very great degree. In the case 
of more powerful hardware these influencies are negligible.
Unicon on modern Windows runs very fast. But for Linux it is even faster. 
Unfortunately I had no time to play with Linux builds.

Binary build (#5) available for download from sourceforge.net is quite slow and 
shall be updated I think.

Build #6 is based on current SVN version of Unicon sources.


Performance results (in seconds) for different Icon/Unicon builds.

Tests were performed with help of xMarkup utility (xmarkup.sourceforge.net).

Test task: markup analysis of complete F.M.Dostoevsky’s writings in HTML format 
 from www.rvb.ru/dostoevski (1209 files).

Test script:: analyse_tags.par



Test builds:

1.  Icon 9.3.1 (Windows binary, Linux sources)

2.  Icon 9.5.1 (Cygwin/Linux sources)

3.  Unicon 12.1 sources, no pthreads

4.  Unicon 12.1 sources, with pthreads

5.  Unicon 12.1 binary with pthreads



6.  Unicon 12.1 sources 06-05-2014, no pthreads


--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] long line error when reading http://file

2014-05-29 Thread Jeffery, Clint (jeffe...@uidaho.edu)
?Dick,


?This reproduces easily for me and appears to be a messaging facilities bug.  
Thanks for reporting it. I have done you the courtesy of logging it on the 
Unicon bug tracker.


Cheers,

Clint


From: Richard H. McCullough 
Sent: Thursday, May 29, 2014 8:14 PM
To: Unicon group
Subject: [Unicon-group] long line error when reading http://file

I have files with very long lines to accommodate comment attributes
for RDF and OWL.
read() works fine on local files, but inserts a NULL character
at position 512  when reading internet files.

Dick McCullough
Context Knowledge Systems
What is your view?

--
Time is money. Stop wasting it! Get your web API in 5 minutes.
www.restlet.com/download
http://p.sf.net/sfu/restlet___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Icon/Unicon port for Android

2014-05-27 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Howdy Sergey,


?I would love to hear from someone (or a group) that does this.

I am very interested in getting Unicon ported to Android and iOS platforms.


My own efforts for Android will focus on a Java-based solution, because the 
Android platform is Java-based and most of the devices are not Intel devices.


Whether native or Java-based, the main issue will be I/O. Sure Android is Linux 
but I predict we will have a fun time getting full classic Icon I/O behavior 
and porting graphics facilities. Then again, the example in the page you point 
is at has "hello, world" on it, so how hard can it be?


Cheers,

Clint



From: Sergey Logichev 
Sent: Tuesday, May 27, 2014 12:42 AM
To: Unicon
Subject: [Unicon-group] Icon/Unicon port for Android

Hello to all!

Has somebody tried to port Icon or Unicon for Android platform? Theoretically 
that is not impossible I think. Android Studio now supports Intel C++ compiler, 
so we can try at least.
https://software.intel.com/en-us/articles/building-native-android-apps-using-intelr-c-compiler-in-android-studio

Best regards,
Sergey Logichev
--
The best possible search technologies are now affordable for all companies.
Download your FREE open source Enterprise Search Engine today!
Our experts will assist you in its installation for $59/mo, no commitment.
Test it for FREE on our Cloud platform anytime!
http://pubads.g.doubleclick.net/gampad/clk?id=145328191&iu=/4140/ostg.clktrk___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] using local in class definition

2014-03-19 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

Thanks for the bug report. I can confirm that it reproduces for me.
If you want, I can post the bug report for you to the Unicon.org bug tracker,
on SourceForge; or more generally, I would encourage you to post bug reports 
there yourself.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Wednesday, March 19, 2014 9:08 AM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] using local in class definition

I just noticed that x2 has been replaced by x1 in the record definition.
I have made the following changes

class test(v1, v2) #:whynot
local x1
local x2
global y1

method add(y)
static z1
x1 +:= y
end
initially(a, b)
v1 := a
v2 := b
end

class whynot(a,b)
local c
local d
initially
end

and the relevant records are now

record test__state(__s,__m,v1,v2,x1,x2)
record whynot__state(__s,__m,a,b,c,d)


The grammar specifies that you should be able to have multiple locals
defined in the one local definition.

regards

Bruce Rennie

On 20/03/14 02:57, Bruce & Breeanna Rennie wrote:
> Good morning to all,
>
> I was running a test example and have found what may be an anomaly in
> the unicon compiler. The source code is given below
>
> class test:whynot(v1, v2)
> local x1, x2
> global y1
>
> method add(y)
> static z1
> x1 +:= y
> end
> initially(a, b)
> v1 := a
> v2 := b
> end
>
> class whynot(a,b)
> #local c,d
> initially
> end
>
> if the line that is commented out is uncommented, the unicon compiler
> will fail with an error of
>
> Write(): can't handle treenode
>
> this occurs in line 874 of the idol.icn code.
>
> Otherwise, if left commented, the compile will succeed and the locals x1
> and x2 will be fields in the record
>
> test__state(__s,__m,v1,v2,x1,x1,a,b)
>
> My question is what is the expected result for using locals in the class
> definitions when classes are subclasses of another.
>
> Secondly, if the class hierarchy is removed as below
>
> class test(v1, v2) #:whynot
> local x1, x2
> global y1
>
> method add(y)
> static z1
> x1 +:= y
> end
> initially(a, b)
> v1 := a
> v2 := b
> end
>
> class whynot(a,b)
> local c,d
> initially
> end
>
>
> the two state records obtained are as follows
>
> record test__state(__s,__m,v1,v2,x1,x1)
> record whynot__state(__s,__m,a,b,c,*c*)
>
> Notice the d is missing from the second record definition and has been
> replaced by the duplicate c
>
> regards
>
> Bruce Rennie
>
> --
> Learn Graph Databases - Download FREE O'Reilly Book
> "Graph Databases" is the definitive new guide to graph databases and their
> applications. Written by three acclaimed leaders in the field,
> this first edition is now available. Download your free book today!
> http://p.sf.net/sfu/13534_NeoTech
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>


--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Some unicon code

2014-03-13 Thread Jeffery, Clint (jeffe...@uidaho.edu)

I like Image(x, 3) as a string representation of structure x.  I concur with 
the idea of improving it to be class/object aware; it works now for Unicon 
objects, but should be made more concise for them.  The other thing I'd suggest 
is "lazy labeling": only emit labels for structures that need them.  So some 
version of Image() where Image([1,2,3]) would return "[1,2,3]", but current 
Image() labels would be emitted only for those structures that need them. One 
could generate a string that looks like legal source code, e.g.

L1 := ['a', 'b']
L2 := [L1, L1]
write(Image(L2, 5)) ---> writes "[_1:=['a','b'],_1]"

Clint

From: Michael Glass 
Subject: Re: [Unicon-group] Some unicon code

Your desire to recursively traverse structures opens up several issues, viz:

-- The order of traversing structures: depth-first or breadth first.
-- Do you want to render the same structure twice
-- How to handle circular structures: A points to B points to A...

Here are the same structure twice and circularity questions:

L1 := ['a', 'b']
L2 := [L1, L1]
put(L2, L2)
writeany(L2)

How do you want L2 to display?  Do you want to render and print L1
multiple times, even if it is a big complicated mess? What about the
L2-inside-L2 problem?

You might want to look at the Image() function in the Icon library. Many
(!) years ago I beefed it up to do the kind of thing you are talking
about. It is a bit messy, partly because there is an option to display
tree structure in indented fashion. It handles only lists, records,
sets, and tables. In other words, it handles only pre-Unicon code.
Particularly you would miss the class system, I think.

The Image() function handles the same-structure-twice and circularity
problems by generating labels for structures, which is what the built-in
image() function does. The above would print something like this (as I
recall):
L2:[ L1:['a', 'b'], L1, L2]

-- Michael Glass
Valparaiso University

On 03/10/2014 03:10 PM, Robert Heckendorn wrote:
> Couple of nice solutions!  Educational , interesting, elegant.  Thanks!
>
>
> Here is the actual problem:
> I want the write() and writes() funcitons to take arbitrary typed
> objects and print something
> reasonable.  So writeany() could take a list of lists for instance.  The
> solutions so far do not
> assume the components can be printed by writes.   What if this needs to
> be a recursive application
> of writeany for lists so each elem in the list is also printed with
> writeany.   That gets in the way of
> these two solutions for various reasons.   Anyone want to speculate on
> an elegant method if the
> function must invoke itself for each element until things writeable with
> writes are found.
>
> cheers,
>
>
>
> --
> |
> | "People would rather believe than know."   -- E. O. Wilson
> |
> | Dr. Robert Heckendorn
> | captainmeer...@gmail.com 
> | http://marvin.cs.uidaho.edu/~heckendo
> | Computer Science Dept, Univ. of Idaho, Moscow, Idaho, USA   83844-1010
>
>
>
> --
> Learn Graph Databases - Download FREE O'Reilly Book
> "Graph Databases" is the definitive new guide to graph databases and their
> applications. Written by three acclaimed leaders in the field,
> this first edition is now available. Download your free book today!
> http://p.sf.net/sfu/13534_NeoTech
>
>
>
> ___
> Unicon-group mailing list
> Unicon-group@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/unicon-group
>


--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group
--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Simple question relating to tgram.y

2014-03-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

I will gently reiterate that I would prefer that you ask such questions via 
private e-mail (or unicon-ldif), since they are not about the language and not 
of general interest.

We haven't moved the Icon grammar anytime in the last 2+ decades.  The Icon 
grammar has lived in h/grammar.h for at least that long. Careful reading of 
include files and makefiles would probably conclude that it is organized this 
way so that iconc's and icont's parsers, generated from the same grammar, can 
build different parse trees using different semantic actions. There is probably 
an opportunity to simplify and cleanup this code; I would be happy if we 
actually were a .y file and did not have any weird utility programs involved in 
parser construction other than YACC or Bison. But at present, it is just as 
Ralph left it.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Monday, March 10, 2014 6:05 AM
To: Unicon group
Subject: [Unicon-group] Simple question relating to tgram.y

For Clinton and Jafar,

I am having a look at the icont source and there appears to be no
grammar.y file for the icon base language any more. Did this disappear
many solars ago and is no longer required or is this just no longer
distributed?

regards

Bruce Rennie
--
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] What am I doing wrong - table of records

2014-02-28 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Icon (and Unicon, due to obsessive backward compatibility) do not create a 
separate copy of the table default value each time the table is subscripted 
with a non-existent key. Instead they produce a reference to the (singleton) 
default value. When you are using this default value in order to "insert" 
elements into the table, you are really just inserting multiple keys that are 
sharing the same health_row instance. The workaround is pretty easy -- but we 
might have a lively discussion of whether this is one of the <1% of the cases 
where we should break backward compatibility, since it is a fairly common 
source of bugs and arguable would be more useful if it was modified to 
copy-on-insert.

From: Dennis Darland - student 
Subject: [Unicon-group] What am I doing wrong - table of records

I've mostly been using Ruby lately, but I like to use different languages.
I was writing a much larger program, and kept having troubles.
I simplified it to this sample program. (really just Icon.)
It happens with both linux and windows.
---


record health_row(yr,mo,wgt)

procedure main()
 null_master := health_row(-1,-1,-1)
 write("Hello World")
 master_tbl := table(null_master)
 mo := "01"
 yr := "2014"

 glu_key := "DT" || yr || "/" || mo
 wgt := 198
 write("glu key = ",glu_key," wgt = ", wgt)
 master_tbl[glu_key].yr := yr
 master_tbl[glu_key].mo := mo
 master_tbl[glu_key].wgt := wgt

 mo := "02"
 yr := "2014"
 glu_key := "DT" || yr || "/" || mo
 wgt := 196
 write("glu key = ",glu_key," wgt = ", wgt)
 master_tbl[glu_key].yr := yr
 master_tbl[glu_key].mo := mo
 master_tbl[glu_key].wgt := wgt

 mo := "01"
 yr := "2014"

 glu_key := "DT" || yr || "/" || mo
 write("glu key = ",glu_key," wgt = from table ",
master_tbl[glu_key].wgt)
 write("You get last value - why not from table?")
end
--
Hello World
glu key = DT2014/01 wgt = 198
glu key = DT2014/02 wgt = 196
glu key = DT2014/01 wgt = from table 196
You get last value - why not from table?
--





--
Dennis Darland
stud...@dennisdarland.com


--
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] loadfunc() for Windows

2014-02-20 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Sergey,


I have used loadfunc() to call C from Windows Unicon before, but it was a long 
time ago. The C calling interface main header file icall.h has some #ifdef 
WIN32 code that I put in at the time, but seems to be missing some updates 
needed to account for recent changes in the virtual machine runtime system. In 
any case, it appears that you are including Unicon header files from bitcount.c 
that are causing trouble. I don't really know what you've done to your 
bitcount.c (included a fib.c along with our headers?) since you did not share 
it.  Loaded C files are generally better off to just use icall.h, and if 
icall.h needs updating, that is the simplest fix.


curpstate stands for "current program state". It is a global variable in 
Unicon's virtual machine. Among other things, curpstate is accessed by macros 
in the Unicon runtime system in order to select which actual implementation of 
cnv_int() and similar C functions in iconx are in use at present: cnv_int_0 or 
cnv_int_1 for example. If Concurrent is enabled, that may complicate things 
related to curpstate further, at which point I let Jafar explain stuff.


To sum up: stop including Unicon header files, and change your icall.h to use 
cnv_int_0 instead of cnv_int. Or if you insist on including Unicon header 
files, figure out how to get your shared library that you are building to where 
it knows about and can access this global variable that lives inside 
iconx.exe/wiconx.exe or whatever .exe's you build using Unicon. This might 
involve extra command line arguments when building (especially linking) iconx, 
but before you get to that point, you are right, you have to be able to build 
your shared library first.


Cheers,

Clint



From: Sergey Logichev 

...step of shared linrary creation is failed:

>gcc -c bitcount.c -I../../../src/h -I../../../src/gdbm -I../../../src/libtp

>gcc -shared -Wl,--enable-auto-import -o libfunc.so bitcount.o
bitcount.o:bitcount.c:(.text+0x14): undefined reference to `curpstate'
collect2.exe: error: ld returned 1 exit status

--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Source code observations and questions?

2014-02-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi Bruce,

I am going to answer your implementation questions about our C macros by 
private e-mail and/or the
language design/implementation mailing list (unicon-ldif).

As far as Unicon not having macros with parameters, this was a decision at the 
time the Icon preprocessor was introduced.  Basic macros and ifdef's were 
considered desirable and needed, and macros with parameters introduce so many 
subtle bugs in C/C++ coding that they were considered undesirable -- the 
cost/benefit ratio was not in their favor.  Other languages like Java have 
gotten rid of the preprocessor entirely for such reasons, so I guess we are not 
extremists.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Wednesday, February 12, 2014 1:58 AM
Subject: Re: [Unicon-group] Source code observations and questions?

Finally a question relating to the [Unicon] preprocessor. The macro definition
facilities in the preprocessor are not very complete, no functional
macros for example. Is there any reason why M4 or its ilk (or even a
unicon version of M4) are not being used?

regards

Bruce Rennie

--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] build Unicon under Windows (XP SP3)

2014-02-11 Thread Jeffery, Clint (jeffe...@uidaho.edu)
I am happy to talk config files until we are blue in the face, but I wonder if 
it isn't a little esoteric for the mailing list and we should take it over to 
private e-mail. Consider this an invitation. :-)


A short summary: when autoconf was introduced to Unicon's build process, it was 
recognized that (a) not all platforms would use it, and (b) not all of Icon's 
extensive pre-existing configuration process could be handled by autoconf, so 
we have a hybrid configuration step consisting of Icon's configuration which 
then calls autoconf if it is available.


Under Icon's configuration mechanism makefiles are copied over from config/*/* 
directories, and autoconf's .in files are similarly copied over. So for example 
Makedefs.in is copied up from your platform's config/unix/x86_64_linux/ 
directory (where it is called Makedefs).


I agree with Jafar's comments about us being really happy if someone manages to 
improve our configure step some more; this might include making autoconf run on 
Windows, and might also include making autoconf on UNIX do more and better, so 
there is less of the legacy configure mechanism needed. But I am conservative 
about throwing away the legacy Icon configure stuff, as it met a really hard 
portability requirement that I don't see autoconf meeting.


Cheers,

Clint



From: Jafar Al-Gharaibeh 
Sent: Tuesday, February 11, 2014 7:26 AM
To: Hugh Sasse
Cc: Sergey Logichev; Jeffery, Clint (jeffe...@uidaho.edu); 
unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] build Unicon under Windows (XP SP3)

I didn't do anything to the config files beyond adding support for few new 
libraries, so I will leave this for Clint to address.


On Tue, Feb 11, 2014 at 4:14 AM, Hugh Sasse 
mailto:h...@dmu.ac.uk>> wrote:
OK.  Well, I think a build without MinGW would be tricky.  I think
one with MinGW would be achievable.  However, at the moment I see a
contradiction between

 AC_CONFIG_FILES([Makedefs:Makedefs.in],)

and the lack of Makedefs.in in the distribution. The existence of
the line and the absence of the file cannot both be right, whatever
the platform.  I've only done a bit of this sort of thing though.
I'm wondering if the file is in source control somewhere, but not
rolled into the distribution?

Also, I note that this has been seen before:
http://sourceforge.net/mailarchive/message.php?msg_id=3152257
Which seems to support my hypothesis that this is platform agnostic,
because it occurs on Debian 3.0.

Hugh

On Mon, 10 Feb 2014, Jafar Al-Gharaibeh wrote:

> Hugh,
>
>  The catch is "configure.ac<http://configure.ac/>" is not used on Windows. We 
> do the build with a
> "static" configuration. You have to change the build process manually to
> add/drop libraries.
>
> --Jafar
>
>
> On Mon, Feb 10, 2014 at 1:33 PM, Hugh Sasse 
> mailto:h...@dmu.ac.uk>> wrote:
>
> > I'm possibly mistaken, but "here goes nothing":
> > configure claims to accept --without-pthread  (incidentally, not
> > --without-pthreads) which does turn off the search for pthreads.
> >
> > The process fails eventually when looking for Makedefs.in due, I suspect,
> > to:
> >
> > $ grep AC_CONFIG_FILES configure.ac<http://configure.ac/>
> > AC_CONFIG_FILES([Makedefs:Makedefs.in],)
> > which tells AC_OUTPUT to look for the template for Makedefs in Makedefs.in
> >
> >
> > https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Configuration-Files.html
> >
> > I believe, from my reading of that, the above could be rewritten as
> >
> > AC_CONFIG_FILES([Makedefs],)
> >
> > since it claims .in is a default.  However, there seems to be no
> > Makedefs.in
> > within the distribution, not according to my abilities with `find`.
> >
> > I don't do enough of this to be certain.
> > Hugh
> >
> >
> > On Mon, 10 Feb 2014, Jafar Al-Gharaibeh wrote:
> >
> > > Sergey,
> > >
> > >pthreads library (including pthread.h) has been available with the
> > MinGW
> > > for the last couple of years at least? Are you using an older MinGW?
> > >
> > > If you don't want concurrent threads you can simply comment out:
> > >
> > >  #define Concurrent 1  // in unicon/config/win32/gcc/define.h
> > >
> > > and also comment out -lpthread from makedefs32.top in the same directory.
> > >
> > > If you want threads and can't find the pthread library in mingw I will
> > ship
> > > you the necessary files from my machine.
> > >
> > > --Jafar
> > >
> > >
> > >
> &g

Re: [Unicon-group] build Unicon under Windows (XP SP3)

2014-02-10 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Sergey,


I am sure Jafar will have more intelligent things to say, but I will try to 
make a couple small observations. Windows XP is liable to give you troubles in 
building Unicon. It will probably run Unicon binaries just fine, but building 
Unicon from source is harder.  Did the binaries not work for you for some 
reason, or do you just prefer to build from source?


It may be possible to walk you through the configuration failure points 
manually, but I suspect that the current build/configure toolchain requires 
Windows 7 or newer. We are continually trying to figure out how to make the 
build rules on Windows as stable and portable as on UNIX, but Microsoft keeps 
changing things such that our configure+build toolchain keeps breaking. Old 
MSYS would not run properly on newer Windows. New MSYS might not run properly 
on old Windows; it is a mess.


I want to rewrite all our build toolchain in Unicon so that we can control 
what's going on, but Jafar thinks I am crazy, and his word is law on the 
Windows Unicon builds, pretty much. :-)


Cheers,

Clint



From: Sergey Logichev 
Sent: Monday, February 10, 2014 1:05 AM
To: unicon-group@lists.sourceforge.net
Subject: [Unicon-group] build Unicon under Windows (XP SP3)

Hello,

As Clinton Jeffery asked I switched my question about Unicon build to here. 
Suppose, Jafar will answer me.

I have downloaded Unicon's source code from SVN repositary and tried to build 
it on Windows with help of MinGW (configured as MinGW base+MSYS base). But I 
failed. Below is decription of my troubles:

To run make command I created a tiny script "make-unicon.bat":

setlocal
set path=c:\utils\mingw\bin;c:\utils\mingw\msys\1.0\bin;%path%
make NT-Configure-GCC
make Unicon
endlocal

Below is its output:

C:\work\unicon>set path=c:\work\unicon\bin;c:\utils\mingw\msys\1.0\bin;

C:\work\unicon>make NT-Configure-GCC
cd config/win32/gcc && sh config.sh

Now remember to add unicon/bin to your path
Then run make Unicon to build

C:\work\unicon>make Unicon
cd src/rtt && make
make[1]: Entering directory `/c/work/unicon/src/rtt'
makefile:1: ../../makedefs: No such file or directory
make[1]: *** No rule to make target `../../makedefs'.  Stop.
make[1]: Leaving directory `/c/work/unicon/src/rtt'
make: *** [Icon-icont] Error 2

C:\work\unicon>

OK, I have seen message Now remember to add unicon/bin to your path and 
slightly changed my make-unicon.bat

setlocal
set path=c:\utils\mingw\bin;c:\utils\mingw\msys\1.0\bin;%path%
make NT-Configure-GCC
set path=c:\work\unicon\bin;%path%
make Unicon
endlocal

Below its output:

C:\work\unicon>set path=c:\work\unicon\bin;c:\utils\mingw\msys\1.0\bin;

C:\work\unicon>make NT-Configure-GCC
cd config/win32/gcc && sh config.sh

cd config/win32/gcc && sh nt-config.sh

Configuring for console build...

cd config/win32/gcc && sh config32.sh

Running 32-bit build configuration...


Done!

echo Run "make Unicon" to build
Run make Unicon to build

C:\work\unicon>set 
path=c:\work\unicon\bin;c:\utils\mingw\bin;c:\utils\mingw\msys\1.0\bin;

C:\work\unicon>make Unicon
cd src/rtt && make
make[1]: Entering directory `/c/work/unicon/src/rtt'
gcc -m32 -O2 -D_X86_ -I../gdbm -I../libtp -DRttx -DRTT 
-DTokDotH=\"../rtt/ltoken.h\" -DNTConsole   -c -o rttparse.o rttparse
c
In file included from ../preproc/../h/gsupport.h:16:0,
 from ../preproc/preproc.h:1,
 from rtt1.h:1,
 from rttgram.y:7:
../preproc/../h/../h/sys.h:211:21: fatal error: pthread.h: No such file or 
directory
 #include 
 ^
compilation terminated.
make[1]: *** [rttparse.o] Error 1
make[1]: Leaving directory `/c/work/unicon/src/rtt'
make: *** [Icon-icont] Error 2

As I understood file /mingw/include/pthread.h is missed. Why? And where I will 
get it?

Best regards,
Sergey Logichev
--
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] [Unicon-ldif] Overloaded operators?

2014-01-28 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Charles,

Are you saying that your patches are still not applied in the SVN distribution, 
or that there are remaining bugfixes needed, or that OVLD is presently usable 
thanks to your work on them?  I know we iterated, and you have committed some 
needed fixes, but this message makes it sound kind of like your patches still 
have not been addressed. I did some and then made you a committer so that you 
could maintain it, is that right? By the way, thank you for working on 
overloading, since Sudarshan has not remained active here.

My general recollection is that before the recent patches needed due to the 
addition of some new thread communication operators, the last time or two that 
I used OVLD it felt like the feature needed more testing before I would 
recommend that folks trust it.  ovld.icn is a good step towards having some 
test coverage for it, it should probably have an &feature check added to the 
top, and then it should be added to tests/unicon

Cheers,
Clint

From: Charles Evans 
Sent: Tuesday, January 28, 2014 2:26 PM
To: unicon-group@lists.sourceforge.net
Subject: Re: [Unicon-group] [Unicon-ldif] Overloaded operators?

I sent in patches to  fix the overloading a year or 2 ago at
http://sourceforge.net/p/unicon/bugs/122/
and a preliminary
test prog ovld.icn: http://sourceforge.net/p/unicon/bugs/122/#4739
^ usage: http://sourceforge.net/p/unicon/bugs/122/?limit=10&page=1#2e4f
If it needs an update, please add your info to the bug.
I would also welcome more tests.
If you have any questions, I am more than glad to help.

If you are new to OVLD, please remember: If doing a math library for others,
your __*__ methods must NOT modify themselves in any way that matters outside
unless the corresponding op modifies its args.

There are a few things you should know about the current state of the runtime:
I only tested the binary ops with l.h.s. classes, e.g. Complex(5,8) - 5

IIRC 5 - Complex(5,8) will require an improvement in the runtime:
It requires a method __rminus__() to be called automatically [to-do]
(or else we must find a way for the runtime to tell method __minus__() that
this time self is the r.h.s. -- and then it must check this in its icon code,
after the checking in the C code. I favor adding the rminus).
__rplus__() would just call __plus__() in this case.
The library classes will be large either way, with or without OVLD.

Until then, any possibly non-complex, non-polymorphic l.h.s. var x
needs for example Complex(x) before use with a possibly complex r.h.s,
and any constant l.h.s. that may ever face a complex r.h.s. y needs
Complex(5)+ y;  This is of course slower and uses more memory.

In my limited (past) experience, even a small OO math program will be
more readable with sane overloaded operators
(much more readable once you have __r*__).
If Lisp is your primary language, YMMV.

Sane usually includes (for me) that no method __*__() exists unless not
calling it would produce a runtime error or a silly result. It should not
cause any side effects unless the corresponding operator does.
One of the few exceptions would be for example
x:=Complex(3); !x
If a call should produce a runtime error, remember to runerr().
With the exceptions well documented as such, I find my programs very
readable and maintainable.

(OTOH if you define __plus__ to do **, or do write:=proc("+",1)
you lose, overloads or no. I see no difference.)

If you will have to maintain much of your own OO math code, I expect you
will find it well worth the drudgery of writing the __*__ methods.
If Lisp is your primary language, YMMV.

Once you look at writing libraries to do for example array ops on complex,
I think you will find operator overloading almost a necessity.
Theoretically, with rminus, etc, an array op class should handle complex
class number math transparently, BUT:

Methods using or providing functions do not benefit as much from OVLD as it
is now: they still need to test all incoming data for class types --
a generic-array method write() must be check each element, to do
x[n].write()
as needed -- unless we decide to accept overloaded functions.

If we do, we may want the runtime to limit all but a few specific functions to
only activate any overloading when they would otherwise throw a runtime error
or produce a useless result such as "record(3)". This keeps the runtime cost
to a minimum; I think it will also limit surprises.

I have found overloaded functions very useful:
Once you have the appropriate libraries, they often make OO math programs
almost as easy to read and write as programs that use only much simpler data
types. They also greatly simplify writing polymorphic functions, allowing
re-use of libraries that you can still read, even if you did not write them.
With them, an OO math library can provide higher math functions that are just
as user-friendly as the basic operations.

If you need good speed or efficiency,
your OO math library classes will usually

Re: [Unicon-group] [Unicon-ldif] Overloaded operators?

2014-01-21 Thread Jeffery, Clint (jeffe...@uidaho.edu)
There is an implementation of operator overloading that was done by Sudarshan 
Gaikaiwari I think, under the #ifdef symbol OVLD. It is not enabled by default. 
It looks a little different than you propose here. It likely would require some 
updates to account for changes made since it was implemented.  At the time it 
was considered a complete implementation, but was not heavily tested nor 
considered rock-solid stable yet. It has not been adopted in the language 
thusfar, partly for philosophical reasons.

Ralph Griswold would say that referential transparency is important, and that 
not knowing whether the expression x+y has
anything to do with addition would make code less readable and maintainable.  
The Java language designers apparently agreed, eschewing the overloading that 
C++ took on in order to try and kill Ada.

Personally, I am ambivalent, wanting classes to be able to define new types 
that feel just as native as built-in types, but somewhat sympathetic to 
Griswold's point of view.

Clint

From: Steve Wampler 
Sent: Tuesday, January 21, 2014 12:03 PM
To: Unicon-features
Subject: [Unicon-ldif] Overloaded operators?

Is anyone still working on adding operator overloading to Unicon?

I was playing with how that might be done at the user level and noticed
that:

proc("+",2) returns the function "+"

as if there is a function named '+' associated with the addition operator.

If that's the case, then how hard would it be to add a function
that returned a 'variable' for an operator's function, so that one could
write [not that one would want to...]:

operator("+")(2,3)

Then one could do [assuming that the new function is named op, say]:

operator("+") :=: plus

Ala the current ability to replace a non-operator function with a procedure:

write :=: myWrite

I understand that invocations of the operator would have to go through
a mapping through the 'variable' for this to work - I just don't have a feel
for how hard it would be

-Steve
--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
Unicon-ldif mailing list
unicon-l...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-ldif

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] beeps in Unicon?

2014-01-13 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Thanks Jay, for helping out.

It is true that if your program is run from a terminal that interprets ASCII 
codes properly, and if it has a working PC speaker, then control-G might give 
you a beep like it would in the old days.

The only alternative that I will bandy about is that if Unicon is built with 
sound enabled, then it can play sound files, including ones that contain beeps. 
Under Windows Icon and Unicon there was a legacy platform-specific function, 
WinPlayMedia(), and under some versions of UNIX (for example, Linux) Unicon has 
a function PlayAudio(), if you have the right libraries (OpenAL, Ogg/Vorbis, 
SDL, and SMPEG may all be useful) installed.

One of Unicon's biggest supporters is fond of saying that he's never heard 
Unicon actually make a sound, and had dozens of times when his Unicon build 
failed due to missing sound libraries or headers and associated autoconf bugs 
and what-not, so it is fair to take a skeptic's approach and believe it only 
when you hear it.

Cheers,
Clint

From: Jay Hammond 
Sent: Monday, January 13, 2014 3:58 PM
To: Steve Wampler; Unicon
Subject: Re: [Unicon-group] beeps in Unicon?

On 8 Jan 2014 at 14:31, Steve Wampler wrote:

>
> I'm looking for a simple way to generate beeps of varying
> duration (and preferably with varying pitch) from Unicon.
> Anyone know of a way?
>
> Thanks!
> Steve
> --
> Steve Wampler -- swamp...@noao.edu
> The gods that smiled on your birth are now laughing out loud.
>

Sorry, I thought there was a way. but I don't know one.

Dear Steve,

I thought there was a way. but I don't know one.

Bill Mitchell's notes & the unicon book failed to suggest anything
helpful with regard to beeps or sound, so I used grep for "sound",
"pitch" and "beep" on the (old) sources I have.

I conclude you can try writing a Control+G to the screen. You might
get one pitch of beep. Or you can call on your OS to make sounds for
you.


Here are the files which contain one or more of "sound", "pitch",
"beep".
# Comments are either my understanding of the code or from the file.


...\Iconsrc\ipl\procs\vrml2lib.icn
   pitch,
#   Subject:  Procedures to support construction of VRML 2.0 files
-
...\Iconsrc\ipl\progs\midisig.icn
   event["e"] := "pitch wheel change"
#   Subject:  Program to show signature of a MIDI file
-
...\Iconsrc\ipl\progs\ttt.icn
writes(at(5,23),beep(),"Invalid Input! Choose 1-9.")
writes(at(5,23),beep(),"Value out of range! Choose 1-9.")
writes(at(5,23),beep(),"That position is already taken! Try
again.")
procedure beep()
# this sends "\7" to an ansii terminal to get a beep
-
...\Iconsrc\uni\lib\gui.icn
 # Discard the event and beep in the window.
# I don't see how a beep is sounded or what data goes where.
-
...\Iconsrc\src\h\sys.h
   #ifdef NAS
  #include  
  #include  
   #endif
-
...\Iconsrc\src\runtime\rlocal.r
"podulesave",   "pointer",  "print","qsound",
"smerge",   "snew", "sound","speaker",
# these are possible OS (specific?) commands that get tested
-
...\Iconsrc\src\runtime\rmac.ri
#passthru #include 
# * File: rmac.ri - Mac system-specific graphics interface code.
+++
...\Iconsrc\src\runtime\rxrsc.ri
 *  StopFlow - stops playing a sound file specified by AuDev->FlowID
 *  the function that plays the sound file in either Asynchronous
 *  the sound file and when it is completed, the process resumes.
fprintf(stderr, "in playsound, AuDev->Server %x\n", AuDev->Server);
fflush(stderr);
fprintf(stderr, "playsound fails\n"); fflush(stderr);
fprintf(stderr, "playsound succeeds\n"); fflush(stderr);

#  * File: rxrsc.ri - X Window specific resource
allocation/deallocation

-
...\Iconsrc\ipl\gprogs\sensdemo.icn
# The largs square sounds a bell if Return is pressed while it
   sensor(win, '\r', ding, &null, m+65, m, 150, 150)# \r in box
sounds bell
#   Subject:  Program to demonstrate sensor routines
# probably this is the relevant stuff about a sound
procedure ding(win, a, x, y, k) # ring the bell
   writes("\^g")
   flush(&output)
   return
end
# I.e. Control+G written to "screen" is expecting to sound a beep
-


Jay Hammond

homem...@talktalk.net



--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
CenturyLink Cloud: The Leader i

Re: [Unicon-group] Error in display of IVIB and UI under CENTOS 6.4 - revision 3635

2014-01-06 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Bruce,

No one has been monkeying with IVIB, whose code is relatively stable. I will 
look into it. What you describe sounds like a problem with Unicon's 
interactions with the window manager, and if that is CENTOS specific then it 
may take a little longer to sort out.

We are in the midst of a massive update to UI, so I would predict various forms 
of brokenness with it this week in the SVN repository, as it is spanning 
multiple incomplete commits. But I don't think those are responsible for what 
you are describing since they would not affect IVIB.

Cheers,
Clint

From: Bruce & Breeanna Rennie 
Sent: Monday, January 06, 2014 4:12 PM
To: Unicon group
Subject: [Unicon-group] Error in display of IVIB and UI under CENTOS 6.4 -  
revision 3635

Good morning on this cool summers day,

I have downloaded revision 3635 from sourceforge and recompiled the
Unicon system, One of the tests I then did was to bring up both UI and
IVIB. In both cases, the windows display were not full screen. I then
adjusted to full screen by clicking the square icon in the top RH
corner. The windows displayed went blank. On restoring to the original
size, they still were blank. The close function also doesn't work and I
have to do a control-C from the terminal from which it started. I have
checked back with an older version from around the middle of October
2013 and the screen display shows correctly and it closes correctly.

Unfortunately, when I run the unicon -features on the older release it
doesn't give me a revision number.



--
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Bug in Unicon syntax parsing?

2013-12-12 Thread Jeffery, Clint (jeffe...@uidaho.edu)

Hi Steve,
This reproduces nicely for me, thanks for the report. Apparently some of our 
syntactic sugar has melted into caramel. I'll look into it.
Cheers,
Clint

From: Steve Wampler 
Sent: Thursday, December 12, 2013 2:21 PM
To: Unicon
Subject: Re: [Unicon-group] Bug in Unicon syntax parsing?

On 12/12/2013 03:00 PM, Steve Wampler wrote:
 > It looks as though blanks aren't always significant during parsing
 > a Unicon program.  In the first assignment below, "|   |" appears
 > to be parsed as the token "||":
 >
 > 
 > procedure main()
 >  p := [: 1|2|3|   |0\3 :]
 >  every writes((!p||" ")|"\n")
 >  p := [: 1|2|3| (|0\3) :]
 >  every writes((!p||" ")|"\n")
 > end
 > 

It appears to be specific to the new [: ... :] operation:

--
procedure main()
 every write(1|2|3|   |0\3)
 write("-")
 every write(![: 1|2|3|   |0\3 :])
end
--

produces:

--
->bug2
1
2
3
0
0
0
-
1
2
30
->
--

-Steve
--
Steve Wampler -- swamp...@noao.edu
The gods that smiled on your birth are now laughing out loud.

--
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group


Re: [Unicon-group] Output file open in Word - strange error message

2013-12-05 Thread Jeffery, Clint (jeffe...@uidaho.edu)
Hi John,

When you reported a similar sounding issue last April, I wasn't very much help, 
for which I am sorry.  What I told you then was that we get error 214 mostly 
when C language I/O routines report errors.  One of the last things you asked, 
or alluded to in that previous thread was that newer Microsoft Windows 
platforms seem to generate these errors when they didn't use to on earlier 
versions of Windows, and that is consistent with my experiences: Windows used 
to behave like UNIX and allow multiple applications to access a file at once, 
but now it does not, or is far more restricted than it was.

In order to track this down better, I will try and reproduce the setup you 
describe and see if I can generate the same error.  In the meantime, it would 
help if you included the text of the error message, in a private e-mail or via 
a post to the bug tracker on Source Forge, along with the program and sample 
input file, if they are not sensitive.

If you can identify which function call(s) the runtime error occurs within, it 
is possible to convert most runtime errors of this time into failure using 
&error, and this is best done by turning it on for a specific call and then 
turning it off afterwards -- that might be a workaround for you until the 
problem is addressed in a friendlier manner.

Regards,
Clint

From: John Sampson 
Sent: Thursday, December 05, 2013 1:22 PM
To: Unicon group
Subject: [Unicon-group] Output file open in Word - strange error message

I have a Unicon program which takes a tab-delimited text file as input
and a text file as output.

If I run it, then open the output file in Microsoft Word, then run the
Unicon program again,
run-time error 214 occurs with an 'offending value' of a string of
spaces followed by three
digits. These do not occur in the input file, so the effect is utterly
mysterious.

The actual error is that the output file is open in Word. Is there a
test I can incorporate in the
program that would give a useful error message?

Regards

John Sampson
__
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group

--
Sponsored by Intel(R) XDK 
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
___
Unicon-group mailing list
Unicon-group@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/unicon-group